真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MQ不丟消息究竟是怎么實(shí)現(xiàn)的-創(chuàng)新互聯(lián)

本篇文章為大家展示了MQ不丟消息究竟是怎么實(shí)現(xiàn)的,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷,專業(yè)領(lǐng)域包括成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、電商網(wǎng)站制作開(kāi)發(fā)、微信小程序定制開(kāi)發(fā)、微信營(yíng)銷、系統(tǒng)平臺(tái)開(kāi)發(fā),與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開(kāi)發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評(píng)估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
通過(guò)消息隊(duì)列(MsgQueue,MQ)發(fā)送任務(wù)和消息,萬(wàn)一MQ重啟了怎么辦?能否保證MQ不丟消息?今天就聊聊MQ的消息必達(dá)性架構(gòu)與流程。不丟消息,MQ架構(gòu)設(shè)計(jì)的核心方向是什么?MQ要想消息必達(dá),架構(gòu)上有兩個(gè)核心設(shè)計(jì)點(diǎn):(1)消息落地;(2)消息超時(shí)、重傳、確認(rèn);
為了實(shí)現(xiàn)上述兩個(gè)核心點(diǎn),MQ架構(gòu)如何?MQ不丟消息究竟是怎么實(shí)現(xiàn)的上圖是一個(gè)MQ的核心架構(gòu)圖,可以分為三大塊:(1)發(fā)送方 -> 左側(cè)粉色部分;(2)MQ核心集群 -> 中間藍(lán)色部分;(3)接收方 -> 右側(cè)屎黃色部分;
粉色發(fā)送方又由兩部分構(gòu)成:(1)業(yè)務(wù)調(diào)用方;(2)MQ-client-sender;其中后者向前者提供了兩個(gè)核心API

(1)SendMsg(bytes[] msg);

(2)SendCallback();

藍(lán)色MQ核心集群又分為四個(gè)部分:

(1)MQ-server

(2)zk;

(3)db;

(4)管理后臺(tái)web;


黃色接收方也由兩部分構(gòu)成:(1)業(yè)務(wù)接收方;(2)MQ-client-receiver;其中后者向前者提供了兩個(gè)核心API

(1)RecvCallback(bytes[] msg);

(2)SendAck();

MQ是一個(gè)系統(tǒng)間解耦的利器,它能夠很好的解除發(fā)布訂閱者之間的耦合,它將上下游的消息投遞解耦成兩個(gè)部分,如架構(gòu)圖中的1箭頭和2箭頭:

MQ不丟消息究竟是怎么實(shí)現(xiàn)的箭頭1:發(fā)送方將消息投遞給MQ,上半場(chǎng);箭頭2:MQ將消息投遞給接收方,下半場(chǎng);
MQ消息可靠投遞核心流程如何?MQ既然將消息投遞拆成了上下半場(chǎng),為了保證消息的可靠投遞,上下半場(chǎng)都必須保證消息必達(dá)。MQ不丟消息究竟是怎么實(shí)現(xiàn)的MQ消息投遞上半場(chǎng),MQ-client-sender到MQ-server流程見(jiàn)上圖1-3:(1)MQ-client將消息發(fā)送給MQ-server;畫(huà)外音:此時(shí)業(yè)務(wù)方調(diào)用API:SendMsg。(2)MQ-server將消息落地,落地后即為發(fā)送成功;(3)MQ-server將應(yīng)答發(fā)送給MQ-client;畫(huà)外音:此時(shí)回調(diào)業(yè)務(wù)API:SendCallback。
MQ不丟消息究竟是怎么實(shí)現(xiàn)的MQ消息投遞下半場(chǎng),MQ-server到MQ-client-receiver流程見(jiàn)上圖4-6:(4)MQ-server將消息發(fā)送給MQ-client;畫(huà)外音:此時(shí)回調(diào)業(yè)務(wù)API:RecvCallback。(5)MQ-client回復(fù)應(yīng)答給MQ-server;畫(huà)外音:此時(shí)業(yè)務(wù)方主動(dòng)調(diào)用API:SendAck。(6)MQ-server收到ack,將之前已經(jīng)落地的消息刪除,完成消息的可靠投遞;
如果消息丟了怎么辦?MQ消息投遞的上下半場(chǎng),都可以出現(xiàn)消息丟失,為了保證消息可達(dá)性,MQ需要進(jìn)行超時(shí)和重傳。
上半場(chǎng)如何實(shí)施超時(shí)與重傳?MQ不丟消息究竟是怎么實(shí)現(xiàn)的MQ上半場(chǎng)的1或者2或者3如果丟失或者超時(shí),MQ-client-sender內(nèi)的timer會(huì)重發(fā)消息,直到期望收到3,如果重傳N次后還未收到,則SendCallback回調(diào)發(fā)送失敗,需要注意的是,這個(gè)過(guò)程中MQ-server可能會(huì)收到同一條消息的多次重發(fā)。
下半場(chǎng)如何實(shí)施超時(shí)與重傳?MQ不丟消息究竟是怎么實(shí)現(xiàn)的MQ下半場(chǎng)的4或者5或者6如果丟失或者超時(shí),MQ-server內(nèi)的timer會(huì)重發(fā)消息,直到收到5并且成功執(zhí)行6,這個(gè)過(guò)程可能會(huì)重發(fā)很多次消息。畫(huà)外音:一般采用指數(shù)退避的策略,先隔x秒重發(fā),2x秒重發(fā),4x秒重發(fā),以此類推。需要注意的是,這個(gè)過(guò)程中MQ-client-receiver也可能會(huì)收到同一條消息的多次重發(fā)。MQ是系統(tǒng)之間的解耦利器,MQ為了保證消息必達(dá),架構(gòu)設(shè)計(jì)方向?yàn)椋海?)消息收到先落地;(2)消息超時(shí)、重傳、確認(rèn)保證消息必達(dá);

上述內(nèi)容就是MQ不丟消息究竟是怎么實(shí)現(xiàn)的,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。


網(wǎng)站名稱:MQ不丟消息究竟是怎么實(shí)現(xiàn)的-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://weahome.cn/article/iihcs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部