成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MQ 如何實現,消息必達到?

開發 架構
MQ能不能實現消息必達?要想消息必達,架構設計上有兩個核心設計點,更具體的,要從MQ的架構與流程談起。

MQ能不能實現消息必達?

要想消息必達,架構設計上有兩個核心設計點:

  • 消息落地;
  • 消息超時、重傳、確認;

更具體的,要從MQ的架構與流程談起。

MQ的核心架構如何?

如上圖所示,MQ的核心架構圖分為三大塊:

  • 發送方 -> 左側粉色部分;
  • MQ核心集群 -> 中間藍色部分;
  • 接收方 -> 右側黃色部分;

粉色發送方又由兩部分構成:

  • 業務調用方;
  • MQ-client-sender;

其中,后者向前者提供了兩個核心API:

  • SendMsg(bytes[] msg)
  • SendCallback()

藍色MQ核心集群由MQ-server,zk,db,管理后臺web等一系列子系統組成。

黃色接收方也由兩部分構成:

  • 業務接收方;
  • MQ-client-receiver

其中,后者向前者也提供了兩個核心API:

  • RecvCallback(bytes[] msg)
  • SendAck()

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

  • 箭頭1,上半場:發送方將消息投遞給MQ;
  • 箭頭2,下半場:MQ將消息投遞給接收方;

MQ既然將消息投遞拆成了上下半場,為了保證消息的可靠投遞,上下半場都必須盡量保證消息必達。

上半場,消息投遞流程如何?

MQ消息投遞上半場,流程見上圖123:

  • sender將消息發送給MQ-server;
  • MQ-server將消息落地;
  • MQ-server回調sender;

上半場,如果消息丟了怎么辦?

答:超時與重傳。

MQ上半場的123如果丟失或者超時,sender內置的timer會重發消息,直到收到3。如果重傳N次后還未收到3,則SendCallback向業務方回調發送失敗。

下半場,消息投遞流程如何?

MQ消息投遞下半場,流程見上圖456:

  • MQ-server回調reciever;
  • reciever收到消息,處理業務邏輯,將ACK發送給MQ-server;
  • MQ-server收到ACK,將之前已經落地的消息刪除,流程結束。

下半場,如果消息丟了怎么辦?

答:還是超時與重傳。

MQ下半場的456如果丟失或者超時,MQ-server內置的timer會重發消息,直到收到5并且成功執行6。

上下半場都要超時重發,策略如何?

常見的策略有兩種:

  • 定時重發,每隔10秒發一次,直到超出次數;
  • 指數退避,先隔x秒重發,2x秒重發,4x秒重發,以此類推;

總結

(1) MQ是系統之間的解耦利器,它能解除消息發送方與接收方的直接耦合;

(2) MQ將消息投遞解耦成了上下兩個半場;

(3) MQ消息必達,架構上有兩個核心設計點:

  • 消息落庫
  • 消息超時、重傳、確認

未盡事宜

消息重發可能導致收到重復的消息,如何進行架構冪等性設計,下次撰文另述。

知其然,知其所以然。

思路比結論更重要。

責任編輯:趙寧寧 來源: 架構師之路
相關推薦

2024-11-13 00:59:13

2017-03-20 09:50:35

消息隊列架構消息

2025-01-13 05:00:00

2020-10-18 07:25:55

MQ消息冪等架構

2021-03-08 10:19:59

MQ消息磁盤

2025-04-14 05:00:00

2024-12-12 14:56:48

消息積壓MQ分區

2024-04-23 08:46:45

消息積壓KafkaMQ

2009-06-14 17:18:55

ibmdwWebSphereMQ

2023-10-24 07:50:18

消息中間件MQ

2023-06-29 10:10:06

Rocket MQ消息中間件

2024-09-23 08:04:45

MYSQL數據存儲

2019-08-23 12:12:49

MQ消息隊列

2017-04-03 21:23:44

消息總線冪等性消息

2024-05-14 08:20:59

線程CPU場景

2022-05-31 08:21:07

MQ使用場景消費消息

2024-06-06 11:38:55

2024-03-22 12:10:39

Redis消息隊列數據庫

2021-05-31 08:00:00

消息隊列架構Rabbit MQ

2024-04-01 09:46:11

MQ消息亂序
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩插插| 国产成人免费 | a久久 | 色婷婷综合在线观看 | 亚洲成年人免费网站 | av三级在线观看 | 国产高清视频 | 日操操夜操操 | 国产精品久久久久一区二区三区 | 亚洲精品视频二区 | 成人毛片网站 | 91在线看片 | 中文字幕日本一区二区 | 国产男人的天堂 | 在线超碰| www视频在线观看 | 中文字幕97 | 亚洲综合一区二区三区 | 国产成人精品一区二区三 | 亚洲视频在线看 | 怡红院成人在线视频 | 综合精品久久久 | 日韩一区二区三区在线观看视频 | 亚洲精品小视频在线观看 | 精品国产一区二区三区免费 | 国产亚洲精品91 | 亚洲免费网址 | 日韩电影在线 | 91精品国产欧美一区二区 | 久久久久久综合 | 成人激情视频在线观看 | 91精品国产一区 | 精品国产一区二区在线 | 国产一区二区 | 久久专区 | 一二区视频 | 国产伦精品一区二区三毛 | 日韩在线视频一区 | 久久免费视频1 | 国产精品一区在线观看 | 日韩中文字幕久久 |