[英]Apache ActiveMQ/TomEE help: How do I configure embedded brokers to store-and-forward?
我們有兩個准備部署的JEE6應用程序。 該應用程序的一部分將使雲耗盡,並向JMS Queue生成消息。 該應用程序的另一半將在我們的服務器上運行,並使用來自JMS隊列的消息。 該應用程序的兩個部分都作為獨立的戰爭運行,並部署到Apache TomEE 1.6(真棒),並使用最新的JEE和CDI規范編寫。
消息持久性是我們主要關心的問題,但是我們願意假設雲應用程序將具有100%的正常運行時間並手動處理異常情況。 由於我們正在改進本地應用程序的設計並進行大量更改,因此該本地應用程序將經常重新啟動。
閱讀ActiveMQ文檔后,我很確定我們想要的是一種存儲轉發架構。 他們的文檔有些晦澀的地方是http://activemq.apache.org/vm-transport-reference.html屬性如何轉換為創建這種架構。
最后的挑戰是本地經紀人需要非常快。 它不僅會消耗遠程隊列中的消息,而且還會在本地寫入和讀取多個隊列。 幸運的是,不需要在本地任何地方使用在本地代理上生成的任何隊列。 但是,消息必須持久。 ...如果我能做到這一點,我需要弄清楚如何運行雙向SSL!
TLDR有兩件事:使我入門的示例URL配置,或者有關ActiveMQ中哪些選項的建議比我上面所說的要好。 謝謝!
經過8個小時的艱苦實驗,事實證明這並不困難。 它只是記錄在案或非常明確...而且我在引起各種問題的主機之一上啟用了ipv6。
在“雲”服務器上,您將使用此
<Resource
id="MyJmsResourceAdapter"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://0.0.0.0:61617,network:static:tcp://ground.server.com:61617)?persistent=false
ServerUrl = vm://localhost
</Resource>
在您的“地面”服務器上,
<Resource
id="MyJmsResourceAdapter"
type="ActiveMQResourceAdapter">
BrokerXmlConfig = broker:(tcp://0.0.0.0:61617,network:static:tcp://cloud.server.com:61617)?persistent=false
ServerUrl = vm://localhost
</Resource>
最后,在Apache TomEE的JAVA_OPTS中禁用ipv6。 您可以通過在bin /中創建setenv.sh並放置以下內容來做到這一點:
export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
現在...找出SSL。 希望這對某人有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.