ActiveMQ的慢消費者

慢消費者:消費消息過慢的consumer/subscriber。html

慢消費者會對broker產生影響,尤爲是non-durable的topic和queue,topic尤甚,會致使broker的內存爆滿,阻塞publisher。apache

1. Non-durable Topics

受慢消費者影像最大,發送到non-durable topic的消息不被持久化且消息還要發送給全部的subscribers。慢的subscriber會使消息積壓,內存佔用上漲,致使publisher阻塞,間接影響到快的subscriber消費消息。spa

應對策略:插件

  • 阻塞/放慢publisher的投放速度
  • 斷開慢的subscriber鏈接
  • 緩衝消息到磁盤
  • 丟掉慢subscriber的消息
  • 自定義插件擴展策略

2. Durable Topics

消息會持久化到磁盤,內存中的消息能夠丟掉,若是有足夠大的磁盤,慢subscriber會被deal well。設計

但若是慢subscriber慢太多的話,說明仍是哪裏出了問題,Virtual Topic?設計上的?htm

3. Durable queues

消息會持久化到磁盤,內存中的消息能夠丟掉。No Problem,何況還有其餘的consumer幫你消費,但若是消息仍是被積壓不少,說明設計出了問題,消費消息太慢,消費速率趕不上生產速率。隊列

3. Non-durable queues

一般個別幾個慢consumer不是問題,有快的consumer會幫你消費,但若是所有consumer都慢,那就是問題了。內存

應對策略:io

  • 阻塞producer
  • 緩衝消息到磁盤
  • 丟掉隊列中的消息

// TODO add  Blocked Transport & Implementation Solutions擴展

http://activemq.apache.org/slow-consumers.html

相關文章
相關標籤/搜索