2012-01-30 106 views
3

我想運行activemq代理vm://協議作爲獨立應用程序,並從位於不同JVM實例中的程序向其隊列發送消息。可能嗎?它會起作用嗎?VM協議是否支持兩個JVM?

This Documentation中明確指出:

「內同一JVM彼此在JVM內部溝通」,但沒有任何意義,我在所有:)場景我們擁有外部JMS代理(位於同一臺計算機上)以及運行在不同JVM(例如Tomcat)中的客戶端並不罕見。 Active-MQ文檔根本沒有幫助我,因爲他們可能認爲解決我的問題是顯而易見的,因此我的困惑。

在此先感謝。

+0

爲什麼沒有道理?只需使用支持網絡的不同協議即可,文檔列出了其中三個協議。 'vm://'協議不適合你的用例。 – millimoose 2012-01-30 14:32:19

+0

好吧,對我來說沒有太多的意義,不要在ActiveMq的文檔中說清楚。我最終在一些完全不相關的網站上尋找這些信息,所以我想這就是爲什麼我迷路了。 你有哪些其他運輸?對不起,我在文檔中找不到它。 – 2012-01-30 14:45:43

+0

看起來ActiveMq模型似乎只有API文檔,並且作者將其出售作爲主要深入參考。如果您打算使用ActiveMq,您可能希望僱主購買該書。其他協議位於鏈接到的同一站點上:[OpenWire](http://fusesource.com/docs/broker/5.5/connectivity_guide/FMBConnectOpenwireIntro.html)(默認),[Stomp](http:// fusesource .com/docs/broker/5.5/connectivity_guide/FMBConnectivityStompIntro.html)和[REST](http://fusesource.com/docs/broker/5.5/connectivity_guide/FMBConnectRestIntro.html) – millimoose 2012-01-30 14:52:31

回答

2

我曾嘗試以下設置:

  1. 獨立ActiveMQ代理
  2. 簡單的Java生產者 - 消費者方案單獨的JVM

跑到他們都使用vm://test經紀人。

結論

標識並不重要ActiveMQ代理是否正在運行。在這兩種情況下,我的簡單示例運行得很順暢 - 它創建了VM代理,當JVM與我的程序一起關閉時,它已被丟棄。

這意味着,真正的VM代理只運行在一個JVM中,並且不能從其他JVM訪問,至少使用最簡單的配置。