消息如何保障100%的投遞成功?
什么是生產端的可靠性投遞?
保障消息的成功發出
保障MQ節點的成功接收
發送端收到MQ節點(Broker)確認應答
完善的消息進行補償機制(如網絡問題沒有返回確認應答)
生產端的可靠性投遞(一)
BAT/TMD互聯網大廠的解決方案:(根據業務和並發量來選擇)
消息落庫,對消息狀態進行打標(進行變更消息狀態)
消息的延遲投遞,做二次確認,回調檢查
第一步進行數據的落庫存儲(持久化成功)保存狀態,第二步發送消息,Broker收到消息,
第三步將受到的結果應答給生產端,生產端異步監聽消費者返回的響應,
數據刷去出來更新消息的狀態,表示消息百分百成功
發送應答如果網絡閃斷的話,消息狀態永遠是初始狀態,
設置規定,分布式任務用來保證同一個時間點抓取消息,消息超時之后還是初始狀態,
將消息抽取出來,繼續投遞。
生產端可靠性投遞(二):
保障MQ如果第一種可靠性投遞,在高並發場景下是否合適?
消息的延遲投遞,做二次確認,回調檢查
先持久化數據在發送消息