1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        UCMQHTTP協(xié)議級(jí)消息隊(duì)列服務(wù)組件

        聯(lián)合創(chuàng)作 · 2023-10-01 03:27

        UCMQ 是一款輕量的HTTP協(xié)議級(jí)消息隊(duì)列服務(wù)組件,項(xiàng)目的最初原型來自“張宴”的HTTPSQS。

        基本特性:

        • 支持標(biāo)準(zhǔn)的HTTP協(xié)議( GET/POST方法),支持長(zhǎng)連接(keep-alive);
        • 請(qǐng)求響應(yīng)非??焖?,入隊(duì)列、出隊(duì)列速度超過10000次/秒;
        • 每個(gè)UCMQ實(shí)例支持多隊(duì)列,隊(duì)列通過操作接口自動(dòng)創(chuàng)建;
        • 單個(gè)隊(duì)列默認(rèn)限制存儲(chǔ)100w未讀消息,可以不限制(非必要建議限制);
        • 可以在不停止服務(wù)的情況下便捷地修改單個(gè)隊(duì)列的屬性(大小限制/只讀鎖/延時(shí)隊(duì)列/同步頻率);
        • 可以實(shí)時(shí)查看隊(duì)列屬性(入隊(duì)列數(shù)量、出隊(duì)列數(shù)量、未讀消息數(shù)量、消息積壓數(shù)量)。
        • 每個(gè)隊(duì)列有獨(dú)立的數(shù)據(jù)文件易管理易搬遷。

        常見部署:

        UCMQ邏輯架構(gòu)中通常會(huì)涉及到三個(gè)角色:生產(chǎn)者(producer)/異步消息隊(duì)列(UCMQ)/消費(fèi)者(consumer),而三者間都以http協(xié)議作為通訊方式,如下圖:

        邏輯部署圖

        【UCMQ部署邏輯架構(gòu)圖】

        【說明】 在整個(gè)部署架構(gòu)中“生產(chǎn)者”和“消費(fèi)者”都被視為UCMQ的客戶端?!吧a(chǎn)者”和“消費(fèi)者”通過設(shè)定的負(fù)載均衡機(jī)制訪問UCMQ服務(wù)端。每個(gè)客戶端(生產(chǎn) 者/消費(fèi)者)均可注冊(cè)一個(gè)或多個(gè)服務(wù)端(在客戶端配置文件添加每個(gè)UCMQ服務(wù)端監(jiān)聽地址),如果注冊(cè)多個(gè)則可以“業(yè)務(wù)容災(zāi)”和“負(fù)載均衡”。

        內(nèi)部結(jié)構(gòu): 

        【UCMQ內(nèi)部結(jié)構(gòu)圖】

         【說明】

        控制模塊:負(fù)責(zé)UCMQ內(nèi)部流程的控制;

        主從復(fù)制模塊:將數(shù)據(jù)變更使用binlog方式同步到備機(jī)實(shí)現(xiàn)容災(zāi)(本版本暫不實(shí)現(xiàn));

        http協(xié)議處理模塊:http處理模塊負(fù)責(zé)http協(xié)議的解析和封裝;

        libevent網(wǎng)絡(luò)事件驅(qū)動(dòng)模塊:負(fù)責(zé)異步事件的接收和分發(fā);

        MQ隊(duì)列管理模塊:管理所有隊(duì)列的rtag信息和隊(duì)列使用狀態(tài)信息;

        數(shù)據(jù)存儲(chǔ)模塊:負(fù)責(zé)消息持久化(當(dāng)前數(shù)據(jù)文件mmap到緩存,所以持久化由系統(tǒng) 輔助完成),清理垃圾數(shù)據(jù)文件(一個(gè)隊(duì)列中可有多個(gè)文件);負(fù)責(zé)準(zhǔn)確和完整的存/取隊(duì)列的rtag信息。

        存儲(chǔ)設(shè)計(jì)

        由于HTTP_SQS項(xiàng)目是基于TC存儲(chǔ)數(shù)據(jù),眾所周知TC的數(shù)據(jù)文件是從頭開始map到緩存的,由于數(shù)據(jù)量的擴(kuò)大不能被緩存的數(shù)據(jù)將很大程度上影 響服務(wù)的性能和穩(wěn)定性。所以UCMQ摒棄了TC,使用日志文件方式存儲(chǔ)消息,數(shù)據(jù)緩存被順序讀取至內(nèi)存中,且緩存區(qū)域隨讀寫指針移動(dòng),這樣既節(jié)省了內(nèi)存使 用也保證了性能。設(shè)計(jì)原理如圖: 

        【UCMQ存儲(chǔ)設(shè)計(jì)圖】

        瀏覽 23
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        編輯 分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            蜜桃媒AV成人片免费看 | 99热久久爱五月天婷婷 | 成人αV | 涩涩污视频 | 久久国产加勒比精品无码 | 美女被狂揉下部羞羞视频 | 八重神子狂飙高清视频在线播放 | 日韩欧美精品一区二区三区 | 国产一级淫乱精品录像 | a级国产乱理伦片在线观看 |