2014-01-23 81 views
0

我們準備部署兩個JEE6應用程序。部分應用程序將耗盡雲併產生消息給JMS隊列。應用程序的另一半將在我們的服務器上運行,並使用來自JMS隊列的消息。應用程序的這兩個部分都作爲單獨的戰爭運行,並部署到Apache TomEE 1.6(這是很棒的順便說一句),並使用最新的JEE和CDI規範編寫。Apache ActiveMQ/TomEE幫助:如何將嵌入式代理配置爲存儲轉發?

消息的持久性是我們主要關心的問題,但我們願意假設雲應用程序將有100%的運行時間並手動處理異常情況。本地應用程序將經常重新啓動,因爲我們正在改進它的設計並進行大量更改。

讀完ActiveMQ文檔後,我很確定我們需要的是存儲轉發體系結構。他們的文檔有點朦朧是屬性http://activemq.apache.org/vm-transport-reference.html轉化爲創建這種架構的方式。

最後的挑戰是當地經紀人需要非常快。它不僅會從遠程隊列中消費消息,還會有幾個隊列在本地進行寫入和讀取。幸運的是,本地經紀人制作的任何隊列不需要在本地任何地方消費。消息必須是持久的。 ...如果我設法做到這一點,我需要弄清楚如何運行雙向SSL!

TLDR是我的兩件事:例子URL配置讓我開始,或者建議ActiveMQ中的選項會比我上面說的更好。謝謝!

回答

1

經過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。您可以通過在箱中的setenv.sh /並把這樣做如下:

export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true" 

現在...找出SSL。希望這可以幫助別人!

+0

它有幫助。感謝分享! – dajood