4.22. 使用 AMQ Broker 注册插件
您可以通过在 CR 中的 brokerProperties 属性中注册插件来扩展 AMQ Broker 的功能。
流程
- 编辑代理部署的自定义资源(CR)。
在
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 ...保存 CR。
创建插件实例后,init 方法会传递一个字符串,其中包含 <key>=<value> pair,用于为插件设置属性。
如果创建自定义插件,请确保插件类的 JAR 文件位于代理的 Java 类路径中。如需更多信息,请参阅 第 4.4 节 “添加第三方 JAR 文件”。
4.22.1. 隔离 brokerProperties 配置 复制链接链接已复制到粘贴板!
如果您的 CR 包含 brokerProperties 部分,并且 CR 处于最大大小限制 1MB,您可以在一个或多个 Java 属性文件中隔离 brokerProperties 配置。您可能还想在单独的文件中隔离 brokerProperties 配置,以逻辑方式对 brokerProperties 项进行分组,以便更轻松地维护。
流程
以 Java 属性格式创建一个文件,其中包含您要应用到代理的
brokerProperties配置。在属性文件中的单独行中添加每个属性。例如:securityRoles.address1.group2.send=true securityRoles.address2.group1.consume=true securityRoles.address2.group2.createAddress=true-
使用
.properties扩展保存文件,如securityRoles.properties。 创建一个包含您创建的
.properties文件的 secret。oc create secret generic address-settings-bp --from-file=securityRoles.properties注意secret 名称必须具有
-bp后缀。当 secret 具有-bp后缀时,Operator 会将代理配置为搜索在代理 pod 上挂载 secret 的目录中的属性文件。在
extraMounts属性中添加对 secret 的引用,以便 Operator 在每个代理 pod 上挂载 secret 中的属性文件:deploymentPlan: ... extraMounts: secrets: - "address-settings-bp" ...Operator 在每个代理 pod 上的
/amq/extra/secrets/ <secretname> 目录中挂载 secret中的.properties文件。在启动时,代理会在每个挂载的目录中搜索具有
.properties扩展名的文件,按字母顺序对文件进行排序,并在文件中应用配置。在属性文件中,代理会根据列出的顺序应用属性。