6.3. 使用 JMS API 管理 AMQ Broker


Java 消息服务(JMS) API 允许您创建、发送、接收和读取消息。您可以使用 JMS 和红帽构建的 Apache Qpid JMS 客户端来管理代理。

6.3.1. 使用 JMS 消息和红帽构建的 Apache Qpid JMS 客户端配置代理管理

要使用 JMS 管理代理,您必须首先使用管理权限配置代理的管理地址。

流程

  1. 打开 & lt;broker_instance_dir> /etc/broker.xml 配置文件。
  2. 添加 & lt;management-address > 元素并指定管理地址。

    默认情况下,管理地址为 activemq.management。如果您不想使用默认值,您只需要指定不同的地址。

    <management-address>my.management.address</management-address>
  3. 为管理地址提供 管理用户权限 类型。

    此权限类型允许管理地址接收和处理管理消息。

    <security-setting-match="activemq.management">
        <permission-type="manage" roles="admin"/>
    </security-setting>

6.3.2. 使用 JMS API 和红帽构建的 Apache Qpid JMS 客户端管理代理

若要使用 JMS 消息调用管理操作,红帽构建的 Apache Qpid JMS 客户端必须实例化特殊的管理队列。

流程

  1. 创建 QueueRequestor 以发送消息到管理地址并接收回复。
  2. 创建 消息
  3. 使用 helper 类 org.apache.activemq.artemis.api.jms.management.JMSManagementHelper 使用管理属性填充消息。
  4. 使用 QueueRequestor 发送消息。
  5. 使用帮助程序类 org.apache.activemq.artemis.api.jms.management.management.JMSManagementHelper 从管理回复中检索操作结果。

例 6.2. 查看队列中的消息数

本例演示了如何使用 JMS API 查看 JMS 队列 exampleQueue 中的消息数量:

Queue managementQueue = ActiveMQJMSClient.createQueue("activemq.management");

QueueSession session = ...
QueueRequestor requestor = new QueueRequestor(session, managementQueue);
connection.start();
Message message = session.createMessage();
JMSManagementHelper.putAttribute(message, "queue.exampleQueue", "messageCount");
Message reply = requestor.request(message);
int count = (Integer)JMSManagementHelper.getResult(reply);
System.out.println("There are " + count + " messages in exampleQueue");
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.