4.22. 使用 AMQ Broker 注册插件


您可以通过在 CR 中的 brokerProperties 属性中注册插件来扩展 AMQ Broker 的功能。

流程

  1. 编辑代理部署的自定义资源(CR)。
  2. brokerProperties 属性中,指定插件的类名称,并包含以逗号分隔的 <key>=<value> 对字符串,用于定义插件的属性。

    在以下示例中,通过 AMQ Broker 提供的 LoggingActiveMQServerPlugin 插件已被注册。

    spec:
      ...
      brokerProperties:
      - brokerPlugins.\"org.apache.activemq.artemis.core.server.plugin.impl.LoggingActiveMQServerPlugin.class\".init=LOG_CONNECTION_EVENTS=true,LOG_SESSION_EVENTS=true,LOG_CONSUMER_EVENTS=true
      ...
    Copy to Clipboard Toggle word wrap
  3. 保存 CR。

    创建插件实例后,init 方法会传递一个字符串,其中包含 <key>=<value> pair,用于为插件设置属性。

注意

如果创建自定义插件,请确保插件类的 JAR 文件位于代理的 Java 类路径中。如需更多信息,请参阅 第 4.4 节 “添加第三方 JAR 文件”

4.22.1. 隔离 brokerProperties 配置

如果您的 CR 包含 brokerProperties 部分,并且 CR 处于最大大小限制 1MB,您可以在一个或多个 Java 属性文件中隔离 brokerProperties 配置。您可能还想在单独的文件中隔离 brokerProperties 配置,以逻辑方式对 brokerProperties 项进行分组,以便更轻松地维护。

流程

  1. 以 Java 属性格式创建一个文件,其中包含您要应用到代理的 brokerProperties 配置。在属性文件中的单独行中添加每个属性。例如:

    securityRoles.address1.group2.send=true
    securityRoles.address2.group1.consume=true
    securityRoles.address2.group2.createAddress=true
    Copy to Clipboard Toggle word wrap
  2. 使用 .properties 扩展保存文件,如 securityRoles.properties
  3. 创建一个包含您创建的 .properties 文件的 secret。

    oc create secret generic address-settings-bp --from-file=securityRoles.properties
    Copy to Clipboard Toggle word wrap
    注意

    secret 名称必须具有 -bp 后缀。当 secret 具有 -bp 后缀时,Operator 会将代理配置为搜索在代理 pod 上挂载 secret 的目录中的属性文件。

  4. extraMounts 属性中添加对 secret 的引用,以便 Operator 在每个代理 pod 上挂载 secret 中的属性文件:

    deploymentPlan:
      ...
      extraMounts:
        secrets:
        - "address-settings-bp"
      ...
    Copy to Clipboard Toggle word wrap

    Operator 在每个代理 pod 上的 /amq/extra/secrets/ <secretname> 目录中挂载 secret 中的 .properties 文件。

    在启动时,代理会在每个挂载的目录中搜索具有 .properties 扩展名的文件,按字母顺序对文件进行排序,并在文件中应用配置。在属性文件中,代理会根据列出的顺序应用属性。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat