RabbitMQ消息堆積問(wèn)題?
- 原因:
有時(shí)可能因?yàn)橄M(fèi)者自身代碼問(wèn)題,導(dǎo)致沒(méi)辦法正常消費(fèi)消息,那么就會(huì)導(dǎo)致消息隊(duì)列中會(huì)堆積大量的消息;
或因?yàn)橥粫r(shí)間來(lái)了非常多的消息,消費(fèi)者沒(méi)辦法及時(shí)消費(fèi),導(dǎo)致消息隊(duì)列中堆積了大量消息。
- 解決辦法:
1.去優(yōu)化消費(fèi)者代碼,提高消費(fèi)能力。減少消費(fèi)時(shí)間
2.可以給消費(fèi)設(shè)置年齡(生命周期),如果超時(shí)就丟棄掉。可以不讓消息大量堆積在消息隊(duì)列中
3.可以設(shè)置隊(duì)列的最大長(zhǎng)度:如果超過(guò)了,就無(wú)法接收消息到隊(duì)列中。
4.建立新的消息隊(duì)列,采用訂閱模式,消費(fèi)者同時(shí)去訂閱新的,還有舊的消息隊(duì)列,同時(shí)去消費(fèi)消息。
原來(lái)是三個(gè)消費(fèi)者去消費(fèi)消息。現(xiàn)在增加10個(gè),20個(gè),30個(gè),或者更多消費(fèi)者, 大家一起去消費(fèi)隊(duì)列中的消息,就可以解決消費(fèi)者隊(duì)列中
堆積的消息處理掉。

浙公網(wǎng)安備 33010602011771號(hào)