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 ...
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 Copied! Toggle word wrap Toggle overflow 保存 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
securityRoles.address1.group2.send=true securityRoles.address2.group1.consume=true securityRoles.address2.group2.createAddress=true
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
.properties
扩展保存文件,如securityRoles.properties
。 创建一个包含您创建的
.properties
文件的 secret。oc create secret generic address-settings-bp --from-file=securityRoles.properties
oc create secret generic address-settings-bp --from-file=securityRoles.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意secret 名称必须具有
-bp
后缀。当 secret 具有-bp
后缀时,Operator 会将代理配置为搜索在代理 pod 上挂载 secret 的目录中的属性文件。在
extraMounts
属性中添加对 secret 的引用,以便 Operator 在每个代理 pod 上挂载 secret 中的属性文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow Operator 在每个代理 pod 上的
/amq/extra/secrets/ <secretname> 目录中挂载 secret
中的.properties
文件。在启动时,代理会在每个挂载的目录中搜索具有
.properties
扩展名的文件,按字母顺序对文件进行排序,并在文件中应用配置。在属性文件中,代理会根据列出的顺序应用属性。