日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RocketMQ生产者组topic和消费组的关系

發布時間:2024/3/12 编程问答 83 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RocketMQ生产者组topic和消费组的关系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

各個之間的關系其實很松散,并不是說不能操作

最佳實踐

訂閱關系一致

多個 Group ID 訂閱了多個 Topic,并且每個 Group ID 里的多個消費者實例的訂閱關系保持了一致。
消費冪等
最終一致性保證數據一致性,如果不冪等,將導致數據錯亂

topic和tag的關系
topic可以是一級過濾關系 tag是二級過濾關系

使用:
業務消息往往推薦做topic 的 一級區分
tag往往用于過濾后續的消息

例如: 飛躍交易消息 和 飛躍物流消息 topic
飛躍化妝品下單消息 和 飛躍電器下單消息 tag

消費模式

集群消費和廣播消費

推薦集群消費
可以用集群消費模擬廣播消費,例如創建多個GroupID模擬廣播消費

問題解釋:
訂閱關系不一致
同一消費組下不同消費者訂閱關系
導致消息丟失
關鍵的代碼: ConsumerGroupInfo.updateSubscription(final Set subList) 關鍵代碼: if (sub.getTopic().equals(oldTopic)) { exist = true; break; } … it.remove(); updated = true; 這里其實是做了一個檢查,做這個檢查的默認前提是一個consumerGroup下面的訂閱消息是一樣的,就是每個consumer注冊的subscription應該是一樣的,如果不一樣就把之前注冊的刪除

未做冪等或者沒做好
1.在TCC中,發送一條訂單過期取消的消息,由于未做冪等導致,導致復活該訂單失敗(其實本身不推薦這樣,推薦的操作是,用戶去查詢失效的訂單時,選擇再來一單即可,而不是復活訂單)
2.僅僅通過redis的分布式鎖來做冪等:原有業務是查詢緩存,然后修改緩存,再落庫
但是在查詢緩存時由于緩存失效,導致去數據庫查詢緩存,結果超過了紅鎖的查詢時間(10分鐘),導致該消息的冪等操作失效,由其他消息修改了原有數據,導致錯亂

參考:
https://www.jianshu.com/p/2838890f3284
https://help.aliyun.com/document_detail/95837.html

總結

以上是生活随笔為你收集整理的RocketMQ生产者组topic和消费组的关系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。