OSGi 整合

連線能力 > 容器 > OSGi 整合

簡介

本文將詳細介紹如何在 Apache Karaf 這個基於 OSGi 的小型執行環境中使用 ActiveMQ Classic。Apache Karaf 以前稱為 ServiceMix kernel,因此這裡找到的資訊也適用於 Apache ServiceMix 企業服務匯流排

本文描述的步驟已使用 Apache Karaf 2.3.0 進行測試。

安裝

ActiveMQ Classic 提供了 Karaf 功能,可協助您在 OSGi 環境中整合和使用訊息中介軟體。首先,您需要將功能 URL 新增至 Karaf。對於 5.9.0 版本,您可以這樣做:

karaf@root> features:chooseurl activemq 5.9.0

之後,您應該會看到新加入的功能。

karaf@root> features:list
State         Version         Name                 Repository
\[uninstalled\] \[5.9.0         \] activemq-broker               activemq-5.9.0        
\[uninstalled\] \[5.9.0         \] activemq-http                 activemq-5.9.0        
\[uninstalled\] \[5.9.0         \] activemq-camel                activemq-5.9.0        
\[uninstalled\] \[5.9.0         \] activemq-web-console          activemq-5.9.0

安裝和執行訊息中介軟體就像安裝 activemq-broker 功能一樣簡單,例如:

karaf@root> features:install activemq-broker

這將安裝並啟動完整的訊息中介軟體(包括 Web 控制台),就像您啟動獨立版本一樣。

訊息中介軟體設定

訊息中介軟體是使用 OSGi Config Admin 機制設定的,並且可以在 Karaf 中輕鬆管理。可以透過修改 ${KARAF_BASE}/etc/org.apache.activemq.server-default.cfg 檔案或相應的 config admin 屬性來完成設定。該檔案的範例如下:

broker-name=amq-broker
data=${karaf.data}/${broker-name}
config=${karaf.base}/etc/activemq.xml

下表列出了必要屬性:

屬性名稱 屬性描述
broker-name 訊息中介軟體的名稱
config XML 設定檔案的位置

您也可以使用此檔案來設定其他屬性,這些屬性將取代 XML 設定檔案中的佔位符,例如此範例中使用的 ${data} 屬性。

預設 XML 設定檔案位於 ${KARAF_BASE}/etc/activemq.xml 中。

Web 控制台

Web 控制台預設安裝,可透過 http://localhost:8181/activemqweb/ 存取。

控制台的設定方式與訊息中介軟體類似。設定位於 ${KARAF_BASE}/etc/org.apache.activemq.webconsole.cfg 中,預設如下所示:

webconsole.jms.url=tcp://localhost:61616
webconsole.jmx.url=service:jmx:rmi:///jndi/rmi://localhost:1099/karaf-root
webconsole.jmx.user=karaf
webconsole.jmx.password=karaf

選用:為了將 ActiveMQ Classic 控制台與設定驗證的訊息中介軟體搭配使用,也必須設定 JMS 連線的使用者名稱/密碼。

webconsole.jms.user=system
webconsole.jms.password=manager

命令

完成這些簡單步驟後,您容器中已安裝所有必要的程式庫。此外,您現在可以使用特定的命令來管理您的訊息中介軟體。

browse                Display selected messages in a specified destination
bstat                 Displays useful broker statistics
list                  Lists all available brokers in the specified JMX context
purge                 Delete selected destination's messages that matches the message selector
query                 Display selected broker component's attributes and statistics
dstat                 Performs a predefined query that displays useful tabular statistics regarding the specified destination type 

命令說明

若要取得特定命令的詳細說明,您可以執行:

activemq:[command] --help 

查詢訊息中介軟體

有幾個命令可用於查詢訊息中介軟體。若要尋址本機訊息中介軟體,您需要使用 --jmxlocal 參數。

以下命令會顯示可用的訊息中介軟體:

karaf@root> activemq:list --jmxlocal
BrokerName = mybroker

若要取得更詳細的資訊,請執行:

karaf@root> activemq:query --jmxlocal

這將顯示有關連線器、佇列列表等的資訊...

您也可以使用 activemq:browseactivemq:purge 命令來瀏覽或清除佇列。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛標誌和 Apache ActiveMQ 專案標誌是 Apache 軟體基金會的商標。Copyright © 2024, The Apache Software Foundation. Licensed under Apache License 2.0.