問題現象 今天忽然收到RocketMQ預警信息如下: 提醒有部分數據沒有消費,產生堆積情況。 打開RocketMq-Console-Ng查看如下圖形式: 備注:第一反應是Consumer Group內訂閱了多個topic?(為什么這么懷疑,下次分析)。 通過命令 ...
前情 出現了重復消費的問題,同一個消息被重復消費了多次,導致了用戶端收到了多條重復的消息,最終排查發現,是因為消費者在處理消息的方法onMessage中有異常沒有捕獲到,導致異常上拋,被consumeMessage捕獲並判定為消費失敗,從而放到了重試隊列當中進行重試,下面我們就來看看RocketMq中會引起消息重試的兩種情況,內部異常和消費超時。 源碼 在Consumer中處理消息時,會在消費完消 ...
2019-05-05 07:43 0 3077 推薦指數:
問題現象 今天忽然收到RocketMQ預警信息如下: 提醒有部分數據沒有消費,產生堆積情況。 打開RocketMq-Console-Ng查看如下圖形式: 備注:第一反應是Consumer Group內訂閱了多個topic?(為什么這么懷疑,下次分析)。 通過命令 ...
前言 在之前的MQ專題中,我們已經解決了消息中間件的一大難題,消息丟失問題。 但MQ在實際應用中不是說保證消息不丟失就萬無一失了,它還有兩個令人頭疼的問題:重復消費和亂序。 今天我們就來聊一聊這兩個常見的問題,看看RocketMQ是如何解決這兩個問題的。 為什么會重復消費 ...
重復消費的問題的一個可能的問題:消費者消費消息時產生了異常,並沒有返回CONSUME_SUCCESS標志。 重復消費的消息和第一次消費的消息不同,多了一些重復消費的信息:reconsumeTimes=1,2,…10REAL_TOPIC也會是:%RETRY%XXXXX這就是因為消息處理異常導致 ...
messageModel有兩種方式:BROADCASTING 和 CLUSTERING, 消費者收到消息也有兩種消費方式:orderly和concurrently, 1、BROADCASTING模式下,所有注冊的消費者都會消費,而這些消費者通常是集群部署的一個個微服務,這樣就會多台機器重復消費 ...
一:順序發送 通過一定算法,將一組順序消息發送到同一個broker下面的同一個隊列,消費者進行順序監聽即可。 例如:一條信息的唯一標識 通過一定算法 路由到 同一個 broker 下到 某一個隊列下。 通過業務層面處理。 備注:send方法帶有參數MessageQueueSelector ...
問題 RocketMQ重復消費問題 RocketMQ線程過高問題 線上場景 場景一:重復消費 場景:生產有這么一種場景,我們在RocketMQ中對一個topic創建了16個tag,不同總類的信息放到不同的tag中,在消費端每個tag對應三個線程組成group去消費 ...
最近在調試RocketMQ消息發送與消費的Demo時,發現一個問題:只要重啟程序,RocketMQ消息就會重復消費。 那么這是什么原因導致的,又該如何解決呢? 經過一番排查,發現程序使用的RocketMQ客戶端版本是3.6.2,而測試環境安裝的RocketMQ環境的版本是4.1.0。原來是 ...
我的RocketMQ架構圖如下: 故障描述: Broker-b所在服務器宕機8小時(1:00-9:00), 重啟Broker-b后, 8小時期間產生的消息被消費者訂閱消費, 由於消費者等冪條件是:2小時內相同消息(msgId相同)不重復發送, 但是此時已經超過兩小時 ...