消息中間件
什麼是MQ
爲什麼要使用MQ
1、如何避免消息重複投遞和重複消費
在生產數據時,消自體中必須要有一個bizId作爲去重依據
在消費一條消息的時候,自己判斷一下是否已經消費過了
2、消息丟失,如何保證消息的可靠性傳輸
消息丟失,可能出現在生產者,MQ,消費者;
生產者丟失:生產者發送數據到MQ的時候,可能因爲網絡問題半路搞丟了。
可以選擇MQ的事務功能,但是會降低吞吐量;
可以使用MQ的發送確認模式,發送消息給MQ之後等待MQ回傳確認消息,自己需要維護MQ分配的唯一ID
MQ中丟失:MQ開啓持久化,把消息持久化到磁盤
消費者丟失:接收到消息,還沒處理,進程掛掉了;
在消息處理完成之後,向MQ發送確認消息。
3、如何保證消息的順序性
場景:一個queue對應多個consumer,無法保證順序
保證順序:一個queue對應一個consumer