2017-03-09 91 views
-1

我使用,我需要以下要求ActiveMQ非持久交付模式限制?

  • 有非常快的消費者作爲我的生產者都已經非常快
  • 在租賃需要每秒
  • 不按規定2K的消息處理來處理的ActiveMQ /消費消息再次發生服務器崩潰或其他故障。我可以再次觸發整個過程。
  • 需要運行非常正常的配置服務器 - 4Gib RAM

下面

問題/問題

  • 我不知道怎麼的ActiveMQ在non-persistent delivery mode情況下商店的消息,是有可能,一旦我的隊列大小超出了某些限制我的過程將內存不足的錯誤失敗?我在問這個問題,因爲爲我測試整個過程非常困難。所以我在觸發這個過程之前需要知道限制。
  • 如果non-persistent delivery mode是不符合我的以上要求,是否有任何性能調整提示,我可以達到我的要求與persistent delivery modetcp://)。我已經用這種模式進行過測試,但似乎消費者在這裏速度很慢。此外,我已經嘗試使用DUPS_OK_ACKNOWLEDGE,以便讓我的消費者快速獲得persistent delivery mode,但沒有運氣。

注:我使用最新的ActiveMQ版本5.14

回答

1

我不知道如何存儲在非持久傳遞模式情況下的ActiveMQ消息

ActiveMQ的存儲消息在存儲器中首先,它也將它交換到磁盤(activemq的數據路徑中有一個tmp_storage文件夾)。

是有可能,一旦我的隊列大小超出了某些限制

我從來沒有在ActiveMQ中遇到內存不足,即使有大約100萬條信息我的過程將內存不足錯誤而失敗。

您還可以通過生產者流量控制(http://activemq.apache.org/producer-flow-control.html)確認。 當沒有消耗太多的消息時,可以讓生產者掛起。

而關於持久交付的表現,我也沒有很好的方法。

+0

感謝您的回覆@MallowFox ..你能解釋一下關於'producer-flow'的一些信息。根據我的理解,它是自動配置的權利?或者我們是否應該在重負荷的情況下做任何事情來減緩生產者流量? –

+0

@Vishal Zanzrukia您只需要在activemq的config xml中設置memoryUsage限制和tempUsage限制。當負載很重時,生產者會自動放慢速度。 – Solo