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 配置管理员机制进行配置,可以在 Karaf 中轻松管理。可以通过修改 ${KARAF_BASE}/etc/org.apache.activemq.server-default.cfg 文件或相应的配置管理员属性来进行配置。该文件示例如下所示:

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 控制台默认安装,可以通过 https://127.0.0.1:8181/activemqweb/ 访问。

控制台的配置与代理本身类似。配置位于 ${KARAF_BASE}/etc/org.apache.activemq.webconsole.cfg 中,默认如下所示:

webconsole.jms.url=tcp://127.0.0.1:61616
webconsole.jmx.url=service:jmx:rmi:///jndi/rmi://127.0.0.1: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 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 许可。