18.4. AMQ Broker 插件支持


AMQ 支持自定义插件。您可以使用插件来记录许多不同类型的事件的信息,否则只能通过调试日志获得。可以一起注册、关联和执行多个插件。该插件根据注册的顺序执行,即第一个插件注册始终会首先执行。

您可以创建自定义插件并使用 ActiveMQServerPlugin 接口实施它们。此接口可确保插件在 classpath 上,并在代理中注册。由于所有接口方法都是默认实现的,所以您必须仅添加需要实施的必要行为。

18.4.1. 在类路径中添加插件

通过将相关的 .jar 文件添加到 < broker_instance_dir> /lib 目录,将自定义创建的代理插件添加到代理运行时中。

如果您使用嵌入式系统,请将 .jar 文件放在嵌入式应用程序的常规类路径中。

18.4.2. 注册插件

您必须在 broker.xml 配置文件中添加 broker-plugins 元素来注册插件。您可以使用 属性 子元素指定插件配置值。这些属性在插件实例化后读取并传递到插件的 init (Map<String, String>)操作。

<broker-plugins>
   <broker-plugin class-name="some.plugin.UserPlugin">
      <property key="property1" value="val_1" />
      <property key="property2" value="val_2" />
   </broker-plugin>
 </broker-plugins>

18.4.3. 以编程方式注册插件

要以编程方式注册插件,请使用 registerBrokerPlugin () 方法并传递插件的新实例。以下示例显示了注册 UserPlugin 插件:

Configuration config = new ConfigurationImpl();

config.registerBrokerPlugin(new UserPlugin());

18.4.4. 记录特定事件

默认情况下,AMQ 代理提供 LoggingActiveMQServerPlugin 插件来记录特定的代理事件。LoggingActiveMQServerplugin 插件默认为注释,且不会记录任何信息。

下表描述了每个插件属性。将配置属性值设为 true 以记录事件。

Expand
表 18.2. LoggingActiveMQServerPlugin 插件属性

属性

描述

LOG_CONNECTION_EVENTS

创建或销毁连接时的信息。

LOG_SESSION_EVENTS

创建或关闭会话时记录信息。

LOG_CONSUMER_EVENTS

创建或关闭消费者时的日志信息。

LOG_DELIVERING_EVENTS

当消息被发送到消费者以及当消息被消费者确认时,日志信息。

LOG_SENDING_EVENTS

当消息被发送到地址以及在代理内路由消息时,日志信息。

LOG_INTERNAL_EVENTS

当一个队列创建或销毁时,会在部署网桥时以及发生关键故障时记录队列创建或销毁的信息。

LOG_ALL_EVENTS

记录以上所有事件的信息。

要配置 LoggingActiveMQServerPlugin 插件来记录连接事件,在 broker.xml 配置文件中取消注释 <broker-plugins> 部分。所有事件的值都在注释的默认示例中设置为 true

<configuration ...>
...
<!-- Uncomment the following if you want to use the Standard LoggingActiveMQServerPlugin plugin to log in events -->
           <broker-plugins>
         <broker-plugin class-name="org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin">
            <property key="LOG_ALL_EVENTS" value="true"/>
            <property key="LOG_CONNECTION_EVENTS" value="true"/>
            <property key="LOG_SESSION_EVENTS" value="true"/>
            <property key="LOG_CONSUMER_EVENTS" value="true"/>
            <property key="LOG_DELIVERING_EVENTS" value="true"/>
            <property key="LOG_SENDING_EVENTS" value="true"/>
            <property key="LOG_INTERNAL_EVENTS" value="true"/>
         </broker-plugin>
      </broker-plugins>
...
</configuration>

当您更改 < broker-plugins&gt; 部分中的配置参数时,您必须重启代理来重新载入配置更新。这些配置更改不会基于 configuration-file-refresh-period 设置重新载入。

当日志级别设置为 INFO 时,会在事件发生后记录条目。如果日志级别设置为 DEBUG,则会为事件之前和之后生成日志条目,例如 beforeCreateConsumer ()afterCreateConsumer ()。如果日志级别设置为 DEBUG,则日志记录器会记录通知的更多信息(如果可用)。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部