我有兩個配置爲存儲轉發網絡的ActiveMQ代理(A和B)。當消費者在代理B上連接並且生產者向A發送消息時,他們完美地將消息從A轉發到B.問題是,當消費者被終止並重新連接到A時,B上的排隊消息(它們從A)不會轉回到消費者連接到的A.即使我向B發送新消息,所有消息仍然停留在B,直到我重新啓動代理。我試圖在代理網絡連接器上設置networkTTL =「4」和duplex =「true」,但它不起作用。ActiveMQ中間人網絡不轉發郵件
3
A
回答
3
遲到的答案,但希望這將有助於未來的其他人。
由於默認情況下AMQ不允許將消息發送回先前傳送給它的代理,所以消息在B中卡住。在正常情況下,這可以防止消息在沒有交付的情況下圍繞網狀網絡拓撲進行週期性轉換,但是在故障轉移情況下,會導致消息停留在一個代理上,並且無法到達所有消費者所在的代理。
要允許消息返回到代理,如果當前代理因爲沒有消費者連接到它而死鎖,則應該使用replayWhenNoConsumers = true允許轉發B上卡住的消息返回A.
該配置選項,你可能想結合使用與它的一些設置,使用時的一些注意事項,在「卡住消息(5.6版)」中描述的http://activemq.apache.org/networks-of-brokers.html,http://tmielke.blogspot.de/2012/03/i-have-messages-on-queue-but-they-dont.html,並https://issues.apache.org/jira/browse/AMQ-4465部分。確保您可以忍受這些更改的副作用(例如,可能會在代理與代理網絡連接中重複傳輸其他消息)。
1
您能否提供更多關於代理A和代理B配置的信息,以及您試圖實現的目標?
在我看來,通過設置經紀人網絡(使用A和B),您可以實現您想要的目標,只有生產者連接到一個,消費者可以連接到另一個。 只要另一個代理具有對郵件發送到的目標的有效訂閱,郵件就會自動傳輸到其他代理。
如果您不確定產生的後果(它往往會導致不需要的消息循環),我不建議更改networkTTL。
相關問題
- 1. ActiveMQ網絡經紀人
- 2. ActiveMQ C#+經紀人網絡
- 3. ActiveMQ JMS網絡輪詢間隔
- 4. 在經紀人的activemq網絡中禁用jmx(spring,xbean)
- 5. ActiveMQ消息在經紀人網絡中的傳播
- 6. activemq master不放棄網絡故障
- 7. 使用ActiveMQ經紀人網絡減少分佈式主題的網絡跳數
- 8. ActiveMQ關於未在代理網絡中轉發的連接建議主題?
- 9. 爲人人社交網絡開發
- 10. 無法讓ActiveMQ重新發送郵件
- 11. ActiveMQ中間商網絡增加了延遲
- 12. activeMQ生產者花費很長時間發送郵件
- 13. ActiveMQ駱駝郵件
- 14. ActiveMQ經紀人網絡與持久訂閱主題
- 15. 經紀人網絡 - ActiveMQ - 任何其他選擇?
- 16. 當郵件服務器不在網絡主機上時發送郵件
- 17. 郵件不通過網絡發送(Python - 套接字)
- 18. 轉發CNN的網絡
- 19. 如何從網絡郵件
- 20. PHP無法發送郵件到網絡郵箱
- 21. 郵件轉發郵件中的設置
- 22. PHP郵件與發件人
- 23. 保護垃圾郵件機器人/網絡爬蟲的電子郵件地址
- 24. HTTP網絡套接字與ActiveMQ網絡套接字
- 25. 電報機器人不收到轉發郵件
- 26. 使用Blat在本地網絡中發送郵件問題
- 27. 從頂級網絡郵件服務導入聯繫人
- 28. Smalltalk中的郵件轉發
- 29. 如果發件人郵件無效,Php郵件不起作用
- 30. 發送郵件中的「收件人」