使用ActiveMQ Artemis在两个WildFly服务器之间构建水平JMS桥
有時有必要將不同的Message Broker連接在一起。 在企業消息傳遞中,此方案稱為橋接。 可以使用JMS和其他協議(例如AMQP,ActiveMQ Artemis核心協議)來完成。 該博客文章重點介紹在WildFly中運行的JMS與兩個Apache ActiveMQ Artemis Brokers的橋接。
什么是JMS橋?
JMS橋通常用于連接不同代理或服務器上的隊列和主題。 橋將消息從源轉發到目標代理,而兩個代理不必位于同一群集中。
這使得橋接適合于將消息從一個群集可靠地發送到另一個群集(例如,通過WAN),并且連接可能不可靠。 它也可以像HiveMQ一樣用于Message Broker的水平擴展。
橫向橋接方案
有兩種不同的部署方案。 在此博客文章中,我將使用源代理在WildFly中配置網橋。 也可以在兩個Broker的中間使用一個額外的ActiveMQ Broker作為Bridge。
上圖顯示了我們要配置的方案。 如您所見,我們需要在源Broker上配置一個隊列,在目標Broker上配置一個隊列,并且需要一些配置以連接這兩個隊列。
注意:我沒有找到更好的設備圖像。 因此,我選擇了iPhone圖像。 隨意可視化其他內容;-)
配置源代理
第一步,您必須為源和目標分別下載和解壓縮WildFly服務器兩次,如上圖所示。
在下一步中,您必須配置源WildFly的standalone-full.xml ,該文件位于WildFly的standalone / configuration文件夾中。
打開XML文件后,您必須通過將以下代碼段添加到standalone-full.xml中,來將Source Queue添加到Source Broker中:
此代碼片段創建一個名為JMSBridgeSourceQueue的新JMS隊列。 在下一步中,您必須配置網橋。 橋具有許多配置選項,例如最大批處理時間,最大重試次數等。 這不是本文的一部分。
要啟動和運行網橋的下一個更重要的配置是指向先前創建的jms-queue的源標記和包含目標代理的目標隊列的配置的目標標記。
如您所見,目標代理需要身份驗證,因此需要在目標代理上創建應用程序用戶。
配置目標代理
配置源代理后,必須配置目標代理。 如前所述,JMS Bridge需要一個應用程序用戶,該應用程序用戶必須添加到目標代理中,并在源代理standalone-full.xml文件中引用。
可以使用
位于以下位置的add-user.sh腳本
bin文件夾。
在最后一步中,您還必須配置目標代理的standalone-full.xml文件。
您必須創建一個與soure Brokers Bridge配置的目標名稱相同的JMS隊列。 而已。 在最后一步中,您可以啟動兩個服務器并檢查日志文件。 如果兩個WildFlies都成功啟動且沒有任何錯誤,則表明Bridge已啟動并正在運行。
啟動經紀人
./standalone.sh -Djboss.socket.binding.port-offset=100 -c standalone-full.xml ./standalone.sh -c standalone-full.xml結論
可以使用許多屬性來配置JMS Bridge。 服務質量,最大批處理時間和最大批處理大小的最大重試次數以及失敗重試間隔時間。
玩轉您的JMS Bridge!
翻譯自: https://www.javacodegeeks.com/2016/11/building-horizontal-jms-bridge-two-wildfly-servers-using-activemq-artemis.html
總結
以上是生活随笔為你收集整理的使用ActiveMQ Artemis在两个WildFly服务器之间构建水平JMS桥的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java中集合判空_Java中的类型安全
- 下一篇: activemq 内存_ActiveMQ