2.4. 配置不在自定义资源定义(CRD)中公开的项
您可以使用 ActiveMQArtemis 自定义资源中的 brokerProperties 属性来配置代理的任何配置设置。如果要配置设置,使用代理 Properties 特别有用:
-
ActiveMQArtemisCRD 没有公开 -
在
ActiveMQArtemisAddress和ActiveMQArtemisSecurityCRD 中公开。
从 AMQ Broker 7.12 开始,ActiveMQArtemis Address 和 ActiveMQArtemisSecurity CRD 都被弃用
在 brokerProperties 属性下添加的配置设置存储在 secret 中。此 secret 作为代理 pod 的属性文件挂载。在启动时,属性文件会在应用 XML 配置后直接应用到内部 java 配置 bean。
- 例子
- 在以下示例中,单个属性应用到配置 bean。
spec:
...
brokerProperties:
- globalMaxSize=500m
...
在以下示例中,多个属性应用于嵌套配置 Bean 集合,以创建名为 target 的、带有另一个代理的代理连接。
spec:
...
brokerProperties
- "AMQPConnections.target.uri=tcp://<hostname>:<port>"
- "AMQPConnections.target.connectionElements.mirror.type=MIRROR"
- "AMQPConnections.target.connectionElements.mirror.messageAcknowledgements=true"
- "AMQPConnections.target.connectionElements.mirror.queueCreation=true"
- "AMQPConnections.target.connectionElements.mirror.queueRemoval=true"
...
使用 brokerProperties 属性提供对在 OpenShift Container Platform 上无法为 AMQ Broker 配置的许多配置项的访问。如果错误地使用,一些属性可能会对您的部署造成严重后果。使用此方法配置代理时始终谨慎。
代理属性的状态报告在
brokerProperties属性中配置的项目的状态在ActiveMQArtemisCR 的BrokerPropertiesAppliedstatus 部分中提供。例如:- lastTransitionTime: "2023-02-06T20:50:01Z" message: "" reason: Applied status: "True" type: BrokerPropertiesAppliedreason字段包含以下值之一,用于显示brokerProperties属性中配置的项目的状态:已应用- OpenShift Container Platform 将更新的 secret 传播到每个代理 pod 的属性文件中。
AppliedWithError-
OpenShift Container Platform 将更新的 secret 传播到每个代理 pod 的属性文件中。但是,在
brokerProperties配置中发现了一个错误。在 CR 的status部分中,检查message字段以识别无效属性并在 CR 中更正它。 OutOfSync-
OpenShift Container Platform 还没有将更新的 secret 传播到每个代理 pod 的属性文件中。当 OpenShift Container Platform 将更新的 secret 传播到每个 pod 时,
reason字段值会更改为Applied。
代理定期检查配置更改,包括对 pod 上挂载的属性文件的更新,并在检测到任何更改时重新载入配置。但是,在重启代理前,对在代理启动时只读取的属性更新(如 JVM 设置)不会被重新加载。有关 重新加载哪些属性的更多信息,请参阅重新加载配置更新。