場景
- 可靠性投遞機制:mq收到生產者消息,mq在返回confirm的時候網絡出現閃斷,導致broker未收到應答,導致發送兩次。
 - MQ Broker服務與消費端傳輸消息的過程中出現網絡抖動。
 - 消費端故障、異常。
 
解決方案
可靠性投遞解決
對每條消息,MQ系統內部必須生成一個inner-msg-id,作為去重和冪等的依據,這個內部消息ID的特性是:
 (1)全局唯一
 (2)MQ生成,具備業務無關性,對消息發送方和消息接收方屏蔽
 有了這個inner-msg-id,就能保證上半場重發,也只有1條消息落到MQ-server的DB中,實現上半場冪等。
消費抖動解決
業務消息體中,必須有一個biz-id,作為去重和冪等的依據,這個業務ID的特性是:
 (1)對於同一個業務場景,全局唯一
 (2)由業務消息發送方生成,業務相關,對MQ透明
 (3)由業務消息消費方負責判重,以保證冪等
