activemq网络桥接_ActiveMQ –经纪人网络解释
activemq網絡橋接
目的
這個由7部分組成的博客系列將分享有關如何創建ActiveMQ代理網絡以實現高可用性和可伸縮性的信息。
為什么要建立經紀人網絡?
ActiveMQ消息代理是企業中消息傳遞基礎結構的核心組件。 它需要高度可用并且可以動態伸縮,以促進具有不同容量需求的動態異構分布式應用程序之間的通信。
如今,在商用硬件上擴展企業應用程序已成為當務之急。 ActiveMQ通過能夠創建代理網絡來分擔負載而很好地滿足了這一要求。
很多時候,跨地理分布的數據中心運行的應用程序需要協調消息。 使用代理網絡可以更好地設計跨地理區域/數據中心的運行消息生產者和消費者。
ActiveMQ使用傳輸連接器,通過它與消息生產者和使用者進行通信。 但是,為了促進代理之間的通信,ActiveMQ使用網絡連接器 。
網絡連接器是兩個代理之間的橋,允許按需轉發消息。
換句話說,如果代理B1啟動到代理B2的網絡連接器,則如果B2上至少有一個消費者使用同一通道,則B1上的通道(隊列/主題)上的消息將轉發到B2。 如果將網絡連接器配置為雙工,則消息將按需從B2轉發到B1。
這非常有趣,因為經紀人現在可以彼此動態通信。
在這個由7部分組成的博客系列中,我們將研究以下主題,以了解這一非常強大的ActiveMQ功能:
為了表示應有的信譽,以下URL已幫助我創建了此博客文章系列。
先決條件
為了便于演示,我們將在同一臺計算機上使用多個ActiveMQ代理實例。
網絡連接器基礎知識–第1部分
下圖顯示了網絡連接器的功能。 它橋接兩個代理,并且如果由Broker-1建立消息,則根據需要將消息從Broker-1轉發給Broker-2。
網絡連接器可以是雙工的,因此消息可以沿相反的方向轉發; 從Broker-2到Broker-1,一旦Broker-1上存在某個使用者,并且該使用者存在于Broker-2中。 第2部分中的更多內容
在Broker-1和Broker-2之間設置網絡連接器
- 創建兩個代理實例,例如broker-1和broker-2
由于我們將在同一臺計算機上運行兩個代理,因此我們將broker-2配置為沒有端口沖突。
- 編輯 /Users/akuntamukkala/apache-activemq-5.8.0/bridge-demo/broker-2/conf/activemq.xml
- 編輯 /Users/akuntamukkala/apache-activemq-5.8.0/bridge-demo/broker-2/conf/jetty.xml
- 配置從Broker-1到Broker-2的網絡連接器
將以下XML代碼段添加到 /Users/akuntamukkala/apache-activemq-5.8.0/bridge-demo/broker-1/conf/activemq.xml
上面的XML代碼段配置了兩個網絡連接器“ T:broker1-> broker2”(僅隊列中的主題除外)和“ Q:broker1-> broker2”(僅隊列中的主題除外)。 這樣可以很好地分隔用于主題和隊列的網絡連接器。
盡管我更喜歡指定[type]:-> [destination broker],但名稱可以是任意的。
URI屬性指定如何連接到broker-2
- 開始經紀人2
- 開始經紀人1
在broker-1上的日志顯示了與broker-2建立的2個網絡連接器
INFO | Establishing network connection from vm://broker-1?async=false&network=true to tcp://localhost:61626INFO | Connector vm://broker-1 StartedINFO | Establishing network connection from vm://broker-1?async=false&network=true to tcp://localhost:61626INFO | Network connection between vm://broker-1#24 and tcp://localhost/127.0.0.1:61626@52132(broker-2) has been established.INFO | Network connection between vm://broker-1#26 and tcp://localhost/127.0.0.1:61626@52133(broker-2) has been established.broker-1上的Web控制臺@ http:// localhost:8161 / admin / connections.jsp顯示了已建立到broker-2的兩個網絡連接器
broker-2上的相同內容未顯示任何網絡連接器,因為broker-2沒有啟動任何網絡連接器
讓我們看看這個動作
讓我們在broker-1的名為“ foo.bar”的隊列上產生100條持久消息。
Ashwinis-MacBook-Pro:example akuntamukkala$ pwd /Users/akuntamukkala/apache-activemq-5.8.0/example Ashwinis-MacBook-Pro:example akuntamukkala$ ant producer -Durl=tcp://localhost:61616 -Dtopic=false -Ddurable=true -Dsubject=foo.bar -Dmax=100broker-1 Web控制臺顯示已將100條消息放入隊列“ foo.bar”
http:// localhost:8161 / admin / queues.jsp
讓我們在broker-2的名為“ foo.bar”的隊列上啟動一個使用者。 這里要注意的重要一點是目標名稱“ foo.bar”應該完全匹配。
Ashwinis-MacBook-Pro:example akuntamukkala$ ant consumer -Durl=tcp://localhost:61626 -Dtopic=false -Dsubject=foo.bar我們發現來自broker-1的foo.bar隊列的所有100條消息都轉發到了broker-2的foo.bar隊列使用方。
位于http:// localhost:8161 / admin / queues.jsp的broker-1管理控制臺
broker-2管理控制臺@ http:// localhost:9161 / admin / queues.jsp顯示,我們啟動的使用者已經使用了從Broker-1按需轉發的所有100條消息
foo.bar隊列上的broker-2消費者詳細信息
broker-1管理控制臺顯示所有100條消息都已出隊[已通過網絡連接器轉發到broker-2]。
“ foo.bar”隊列上的broker-1使用者詳細信息顯示該使用者是按需創建的:[連接器名稱] _ [目標代理] _inbound_
因此,我們已經了解了ActiveMQ中網絡連接器的基礎。
請繼續關注第2部分…
翻譯自: https://www.javacodegeeks.com/2014/04/activemq-network-of-brokers-explained.html
activemq網絡橋接
總結
以上是生活随笔為你收集整理的activemq网络桥接_ActiveMQ –经纪人网络解释的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 禽类是什么意思 禽类指什么样的动物
- 下一篇: JDK 14的征兆开始出现