国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

RocketMQ消息丟失如何排查?

開發 前端
我們在RocketMQ-Dashboard上其實就能看到每個隊列broker端的offset(代理者位點)以及消息消費的offset(消費者位點),差值就是沒有被消費的消息。

消息丟失如何排查?當我們在使用mq的時候,經常會遇到消息消費異常的問題,原因有很多種,比如:

  • producer發送失敗
  • consumer消費異常
  • consumer根本就沒收到消息

「那么我們該如何排查了?」

其實借助RocketMQ-Dashboard就能高效的排查,里面有很多你想象不到的功能。

首先我們先查找期望消費的消息,查找的方式有很多種,根據消息id,時間等。

「消息沒找到?」

說明proder發送異常,也有可能是消息過期了,因為rocketmq的消息默認保存72h,此時到producer端的日志進一步確認即可。

「消息找到了!」

接著看消息的消費狀態,如下圖消息的消費狀態為NOT_ONLINE。

「NOT_ONLINE代表什么含義呢?」

別著急,我們一步步來分析,先看看TrackType到底有多少種狀態。

public enum TrackType {
CONSUMED,
CONSUMED_BUT_FILTERED,
PULL,
NOT_CONSUME_YET,
NOT_ONLINE,
UNKNOWN
}

每種類型的解釋如下:

類型

解釋

CONSUMED

消息已經被消費

CONSUMED_BUT_FILTERED

消息已經投遞但被過濾

PULL

消息消費的方式是拉模式

NOT_CONSUME_YET

目前沒有被消費

NOT_ONLINE

CONSUMER不在線

UNKNOWN

未知錯誤

「怎么判定消息已經被消費?」

上一節我們講到,broker會用一個map來保存每個queue的消費進度,「如果queue的offset大于被查詢消息的offset則消息被消費,否則沒有被消費」(NOT_CONSUME_YET)。

我們在RocketMQ-Dashboard上其實就能看到每個隊列broker端的offset(代理者位點)以及消息消費的offset(消費者位點),差值就是沒有被消費的消息。

當消息都被消費時,差值為0,如下圖所示:

「CONSUMED_BUT_FILTERED表示消息已經投遞,但是已經被過濾掉了」。例如producer發的是topicA,tagA,但是consumer訂閱的卻是topicA,tagB。

「CONSUMED_BUT_FILTERED(消息已經被投遞但被過濾)是怎么發生的呢?」

這個就不得不提到RocketMQ中的一個概念,「消息消費要滿足訂閱關系一致性,即一個consumerGroup中的所有消費者訂閱的topic和tag必須保持一致,不然就會造成消息丟失」。

如下圖場景,發送了4條消息,consumer1訂閱了topica-taga,而consumer2訂閱了topica-tab。consumer1消費q0中的數據,consumer2消費q1中的數據。

投遞到q0的msg-1和msg-3只有msg-1能被正常消費,而msg-3則是CONSUMED_BUT_FILTERED。因為msg-3被投遞到q0,但是consumer1不消費tagb的消息導致消息被過濾,造成消息丟失。

同理msg-2這條消息也會丟失。

「注意,還有一個非常重要的點」!

雖然消息消費失敗了,但是消息的offset還會正常提交,即 「消息消費失敗了,但是狀態也會是CONSUMED」。

「RocketMQ認為消息消費失敗需要重試的場景有哪些?」

  • 返回ConsumeConcurrentlyStatus.RECONSUME_LATER
  • 返回null
  • 主動或被動拋出異常

「那么消費失敗的消息去哪了呢?」

當消息消費失敗,會被放到重試隊列中,Topic名字為%RETRY% + consumerGroup。

「Consumer沒訂閱這個topic啊,怎么才能消費到重試消息?」

其實在Consumer啟動的時候,框架內部幫你訂閱了這個topic,所以重試消息能被消費到。

「另外消息不是一直重試,而是每隔1段時間進行重試」

第幾次重試

與上次重試的間隔時間

第幾次重試

與上次重試的間隔時間

1

10 秒

9

7 分鐘

2

30 秒

10

8 分鐘

3

1 分鐘

11

9 分鐘

4

2 分鐘

12

10 分鐘

5

3 分鐘

13

20 分鐘

6

4 分鐘

14

30 分鐘

7

5 分鐘

15

1 小時

8

6 分鐘

16

2 小時

當消息超過最大消費次數16次,會將消息投遞到死信隊列中,死信隊列的topic名為%DLQ% + consumerGroup。

「因此當你發現消息狀態為CONSUMED,但是消費失敗時,去重試隊列和死信隊列中找就行了」。

消息消費異常排查實戰

這個問題發生的背景是這樣的,就是我們有2個系統,中間通過mq來保證數據的一致性,結果有一天數據不一致了,那肯定是consumer消費消息有問題,或者producer發送消息有問題。

先根據時間段找到了消息,確保了發送沒有問題,接著看消息的狀態為NOT_CONSUME_YET,說明consumer在線但是沒有消息。

「NOT_CONSUME_YET表明消息沒有被消費」,但是消息發送都過了好長時間了,consumer不應該沒消費啊,查日志consumer確實沒有消費。

用RocketMQ-Dashboard查看一下代理者位點和消費者位點,0隊列正常消費,其他隊列沒有被消費。

「感覺這個負載均衡策略有點問題啊,怎么0隊列這么多消息,別的隊列都怎么沒消息,問一波中間件的同學,是不是又改負載均衡策略了?」

確實改了!測試環境下,采用隊列緯度區分多環境,0是基準環境,我們團隊目前還沒有用多環境,所以收發消息都會在隊列0上,其他隊列不會用到(「你可以簡單認為測試環境發送和消費消息只會用到0隊列」)。

「那么問題來了!」

首先消息的狀態是NOT_CONSUME_YET,說明消息肯定被投遞到0隊列之外了,但是中間件的小伙伴卻說消息不會被投遞到0隊列。

要想驗證我的想法首先需要證明沒有被消費的消息確實被投遞到0隊列之外的隊列了。

中間走的彎路就不說了,直到我看了看RocketMQ-Dashboard的源碼,「發現Dashboard其實返回了消息的很多信息,但是并沒有在頁面展示出來,直接看接口返回」。

乖乖,發現了新世界,消息的所有屬性都在這了,看到queuId為14,果然驗證了我的想法。

再看bornHost居然是我們辦公室的網段。

「難道本地啟動的負載均衡策略和測試環境的負載均衡策略不一樣?」

本地debug一波代碼,果然是本地的producer會往所有的隊列發送消息,并且consumer也會消費所有隊列的消息。

「至此找出問題了!」

producer在本地啟了一個服務,注冊到測試環境的zk,測試環境的部分請求打到本地,往0隊列之外的隊列發了消息,但是測試環境的consumer只會消費0隊列中的消息,導致消息遲遲沒有被消費。

責任編輯:武曉燕 來源: Java識堂
相關推薦

2024-08-06 09:55:25

2023-12-21 08:01:41

RocketMQ消息堆積

2023-09-13 08:14:57

RocketMQ次數機制

2023-04-25 18:54:13

數據數據丟失

2021-08-04 07:47:18

Kafka消息框架

2025-10-16 08:34:01

2024-02-04 09:02:29

RocketMQ項目處理器

2021-02-02 11:01:31

RocketMQ消息分布式

2023-12-15 13:08:00

RocketMQ中間件消費順序

2024-10-29 08:34:27

RocketMQ消息類型事務消息

2024-11-11 13:28:11

RocketMQ消息類型FIFO

2021-03-08 10:19:59

MQ消息磁盤

2022-12-22 10:03:18

消息集成

2021-04-27 07:52:18

RocketMQ消息投遞

2021-10-22 08:37:13

消息不丟失rocketmq消息隊列

2021-09-13 07:23:53

KafkaGo語言

2022-06-02 08:21:07

RocketMQ消息中間件

2023-07-18 09:03:01

RocketMQ場景消息

2023-07-17 08:34:03

RocketMQ消息初體驗

2025-04-09 08:20:00

RocketMQ消息隊列開發
點贊
收藏

51CTO技術棧公眾號

深夜成人在线| 欧美亚洲在线日韩| 久久精品在线观看| 国内一区二区在线视频观看| 日韩毛片一区| 欧美日韩精品欧美日韩精品一 | 精品国产一区二区三区久久久| 全部a∨一极品视觉盛宴| 精品亚洲国产成人av制服丝袜| 国产精品私拍pans大尺度在线| 日韩一级特黄| 日韩欧美国产综合在线一区二区三区| 三级黄色网址| 久久人人爽人人爽| 成人一区二区av| 久久蜜桃精品| 成人午夜影院在线观看| 国产色99精品9i| 亚洲天堂网在线观看| 国产精品久久久久久福利| 亚洲一区二区美女| 国产精品无码av无码| 国产真实乱偷精品视频免| 久久久亚洲综合网站| 91精品国产麻豆国产在线观看| 欧美国产在线电影| 久久免费资源| 亚洲网址你懂得| 无遮挡在线观看| 亚洲福利视频网| 国产三线在线| 精品成人免费观看| 久久av色综合| 亚洲国产精品专区久久| 伊人222成人综合网| 欧美网站一区二区| 成av人电影在线观看| 色欧美88888久久久久久影院| 性生大片免费观看性| 自拍偷拍国产精品| 加勒比日本影视| 国产精品私人影院| 四虎影视av| 亚洲最快最全在线视频| 国产va在线观看| 亚洲综合网站在线观看| 91网页版在线登录入口| 亚洲国产成人精品视频| 在线免费黄色毛片| 欧美日韩亚洲视频| 成人在线免费看| 欧美一区二区视频在线观看2020| av在线网址观看| 亚洲精品电影网在线观看| 午夜激情电影在线播放| 日韩精品在线免费| 欧洲亚洲精品久久久久| 欧美丰满少妇xxxxx做受| 欧美日日夜夜| 国产日韩在线精品av| 欧美精品首页| 亚洲国产一区二区三区在线| 国产自产高清不卡| www.欧美日本| 亚洲一级二级三级| 成年人视频在线免费观看| 亚洲国产高清福利视频| 四虎国产精品免费久久| 国产91在线播放精品91| 伊人久久亚洲热| 亚洲欧美久久234| 久久婷婷综合激情| 黄网站app在线观看下载视频大全官网 | 精品视频免费在线播放| 99国产欧美另类久久久精品| 国产主播中文字幕| 亚洲成av人片在线观看| 黄色片网站在线| 在线观看中文字幕亚洲| 猛男gaygay欧美视频| 国产精品久久久久久久久久久久午夜片 | heyzo在线播放| 久久夜精品香蕉| 成人羞羞动漫| 欧美精品尤物在线| 99re视频精品| 免费观看成年在线视频网站| 精品国产a毛片| caoporn成人| 亚洲精品日韩av| 国产一区二区三区四区在线观看| 黄色av免费在线播放| 在线亚洲一区观看| 成人性片免费| 91色p视频在线| 国产自产2019最新不卡| 91精品国产一区二区三密臀| 亚洲精品在线三区| 美女亚洲一区| 中文字幕中文字幕在线中心一区| 17c精品麻豆一区二区免费| 99热国产在线| 韩国欧美亚洲国产| 日韩精品一二三区| 五月亚洲综合| 精品国产乱码久久久久久牛牛| 日本一区福利在线| 波多野结衣三级在线| 亚洲国产精品一区二区尤物区| 成人线上视频| 1区1区3区4区产品乱码芒果精品| 国产精品99久久久久久似苏梦涵 | 精品国产乱码久久久久软件| 99国产精品视频免费观看| 国产视频在线看| 一区二区在线电影| 日韩和欧美一区二区三区| 亚洲自拍另类欧美丝袜| 99久久精品免费精品国产| 国产女人在线观看| 午夜精品久久久久久久99热| 日本欧美大码aⅴ在线播放| 午夜爽爽视频| 久久成人av网站| 日一区二区三区| 小小水蜜桃在线观看| 欧美激情一区二区三区成人| 久久国产精品99久久人人澡| 国产一二三区在线| 欧美在线国产精品| 国产婷婷精品| 欧美激情成人在线| crdy在线观看欧美| 亚洲成人天堂| 成人欧美一区| 亚洲精品久久久久中文字幕二区| 中文字幕第21页| 亚洲福利精品在线| 亚洲激情不卡| 久久精品亚洲| 女人偷人在线视频| 国内精品小视频在线观看| 国产成人免费xxxxxxxx| 欧美理论片在线播放| 国产高清一区二区三区| 亚洲国产综合人成综合网站| 久久91在线| 三级在线视频观看| 日韩视频在线免费观看| 国产一区激情在线| av人人综合网| 亚洲欧美99| 亚洲第一级黄色片| 日本三级亚洲精品| 丁香影院在线| 亚洲国产午夜伦理片大全在线观看网站 | 中日韩一区二区三区| 国产97色在线|日韩| 亚洲三级理论片| 亚洲国产合集| www.成人69.com| 88国产精品欧美一区二区三区| 91视频精品在这里| 日本一区二区三区视频在线看| www.com毛片| 欧美激情影音先锋| 中文字幕一区二区三区精华液| 欧美sss在线视频| 国产天堂在线观看| 国产精品直播网红| 日本高清不卡一区| 久久精品国产清高在天天线| 青春草视频在线| 久久久久久久免费视频| 中文字幕日韩综合av| 国产欧美一二三区| 综合国产视频| 你懂的在线观看视频网站| 国产亚洲欧美一区二区| 91麻豆精品国产91久久久久| 亚洲综合最新在线| 色综合久久天天| 亚洲永久在线| 黄色污网站在线观看| 国产精品又粗又长| 97在线视频免费看| 午夜伦欧美伦电影理论片| 欧美丝袜一区| 久久综合久久综合久久| 在线电影欧美成精品| 午夜精品久久一牛影视| 99久久精品费精品国产| 波多野结衣在线影院| 亚洲国产精品综合| 日本美女在线中文版| 神马久久影院| 亚洲精品精选| 99久久99久久精品免费观看| 香蕉视频一区| 成人福利一区|