2017-02-07 82 views
0

我剛剛在一天前開始使用ActiveMQ,因此我對此的瞭解有限。 我的目標是在JMS消息的不同場景中檢查ActiveMQ的穩定性和吞吐量。 所以,以下是一種情況。 1.我發佈1萬個非持久性同步消息給主題,並以同步非持久方式訂閱它。一個發佈者和一個訂閱者。 2.經紀人,發行人和訂戶在測試過程中啓動。對於非持久訂閱者,非持久性jms消息會丟失

不幸的是,幾乎大部分時間(只有一次我從14次嘗試中獲得所有消息),我沒有收到用戶端的所有消息(1 mil)。將近5500條消息丟失。

我對tibco ems和ibm mq做了同樣的測試,但沒有得到這個問題。

因此,對於ActiveMQ,如果我需要接收所有消息,是否有必要始終使用持久消息和持久訂閱?

不要從保證消息或故障切換場景的角度來思考。

任何建議是值得歡迎的。

感謝, 史密斯

回答

2

不知道你的具體情況。但是,當生產者比消費者快時,ActiveMQ將限制用於緩衝消息的內存,方法是將舊消息放在特定限制以上。

這是configurable

+0

正確的一個。我使用'constantPendingMessageLimitStrategy = -1'管理了損失。 –