偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

面試官:對于MQ中的消息堆積你是怎么理解的?

開發(fā)
我們經(jīng)常說的消息堆積通俗點講就是消費者消費不了了,造成消息在MQ中堆著,然后越來越多,所以說消息堆積是在消費者階段的問題。

上一篇文章中,我們對MQ中的消息丟失有了一定的了解,相信再次被面試官問到時心里也就有了底氣了。

文章的地址我放在下面,還沒有看的可以跳過去看一下。

面試官:對于MQ中的消息丟失你是如何理解的?

我們經(jīng)常說的消息堆積通俗點講就是消費者消費不了了,造成消息在MQ中堆著,然后越來越多,所以說消息堆積是在消費者階段的問題。

那么發(fā)生消息堆積的原因有哪些呢?

一、消息堆積的原因

  1. 消費者掛掉。
  2. 消費者與 MQ 之間網(wǎng)絡(luò)斷開。
  3. 消費者代碼 BUG ,重復(fù)消費一條消息。
  4. 消息路由 key 錯誤,造成個別分區(qū)消息堆積。
  5. 消費者性能原因,例如業(yè)務(wù)邏輯單表數(shù)據(jù)量過大造成消費時間緩慢。

除了上述的5個原因外,如果在工作中你還遇到過其他造成消息堆積的原因,也歡迎你在評論區(qū)進行交流,一起進步。

當(dāng)發(fā)生了消息堆積時,優(yōu)先是解決消息堆積問題,然后是排查問題制定解決方案。畢竟保證系統(tǒng)的可用性是首先要解決的問題??焖俳鉀Q積壓的方法就是通過水平擴容增加消費者的實例數(shù)量。

消息堆積的原因我們知道了,下面我就分享一下在工作中經(jīng)常用的解決消息堆積的幾種方式。

二、怎么解決消息堆積問題

  1. 限制生產(chǎn)者消息生產(chǎn)速度。
  2. 增加消費者數(shù)量,水平擴容。
  3. 排查消費者代碼邏輯,保證沒有一直循環(huán)消費一條消息。
  4. 優(yōu)化消費者消費邏輯,減少復(fù)雜計算邏輯。使用異步、多線程等手段提升消費速度。
  5. 定期清理過期消息。

對于第二條增加消費者數(shù)量需要注意的是,消息的路由key,分區(qū)等概念。如果配置不正確,新增加的消費者并不會幫忙消費堆積的消息,相反只會對新增的消息進行消費。

三、總結(jié)

消息堆積發(fā)生的原因一般就是消費者出了問題,或者被一個異常一直錯誤的重試。那么解決方式也就是我們上面所說的,水平擴容消費者、消費者處理速度優(yōu)化、消費者異常重試等。

不過相對應(yīng)的,消息的重試也就會發(fā)生一條消息執(zhí)行多次的情況,那么你的接口做冪等了嗎,下一篇文章,我們就來看下MQ中的消息重復(fù),如何處理消費過程中的重復(fù)消息。

責(zé)任編輯:趙寧寧 來源: 醉魚Java
相關(guān)推薦

2024-06-06 11:38:55

2024-06-18 14:08:22

2020-08-17 07:40:19

消息隊列

2021-11-25 10:18:42

RESTfulJava互聯(lián)網(wǎng)

2021-08-09 07:47:40

Git面試版本

2025-01-13 09:24:32

2025-10-17 09:49:07

2020-06-12 15:50:56

options前端服務(wù)器

2024-09-27 15:43:52

零拷貝DMAIO

2020-12-01 08:47:36

Java異常開發(fā)

2025-02-21 15:25:54

虛擬線程輕量級

2015-08-13 10:29:12

面試面試官

2025-08-18 00:00:00

零拷貝系統(tǒng)調(diào)用函數(shù)

2025-03-21 00:00:05

Reactor設(shè)計模式I/O 機制

2024-10-24 16:14:43

數(shù)據(jù)傳輸CPU零拷貝

2022-03-21 09:05:18

volatileCPUJava

2025-10-28 02:00:00

2024-05-11 15:11:44

系統(tǒng)軟件部署

2024-07-25 18:20:03

2025-04-09 00:00:00

點贊
收藏

51CTO技術(shù)棧公眾號