1.4. 模块化代理配置文件
如果您有多个共享通用配置设置的代理,您可以在单独的文件中定义通用配置,然后在每个代理的 broker.xml 配置文件中包括这些文件。
您可以在代理间共享的最常见配置设置包括:
- addresses
- 地址设置
- 安全设置
流程
为您要共享的每个
broker.xml部分创建一个单独的 XML 文件。每个 XML 文件只能包含来自
broker.xml的单个部分(例如,地址或地址设置,但不能同时包含两者)。顶级元素还必须定义元素命名空间(xmlns="urn:activemq:core")。本例演示了
my-security-settings.xml中定义的安全设置配置:my-security-settings.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
为每个应使用通用配置设置的代理打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 对于您打开的每个
broker.xml文件,请执行以下操作:在
broker.xml开头的 <configuration> 元素中,验证是否出现以下行:xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xi="http://www.w3.org/2001/XInclude"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为每个包含共享配置设置的 XML 文件添加 XML 包含。
这个示例包括
my-security-settings.xml文件。broker.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,验证
broker.xml以验证 XML 对 schema 是否有效。您可以使用任何 XML 验证器程序。本例使用
xmllint根据artemis-server.xsl模式验证broker.xml。xmllint --noout --xinclude --schema /opt/redhat/amq-broker/amq-broker-7.2.0/schema/artemis-server.xsd /var/opt/amq-broker/mybroker/etc/broker.xml
$ xmllint --noout --xinclude --schema /opt/redhat/amq-broker/amq-broker-7.2.0/schema/artemis-server.xsd /var/opt/amq-broker/mybroker/etc/broker.xml /var/opt/amq-broker/mybroker/etc/broker.xml validatesCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关 XML 包含(XIncludes)的详情请参考 https://www.w3.org/TR/xinclude/。
1.4.1. 重新加载模块配置文件 复制链接链接已复制到粘贴板!
当代理定期检查配置更改(根据 config-file-refresh-period 指定的频率),它不会自动检测通过 xi:include 在 broker.xml 配置文件中包含的配置文件的变化。例如,如果 broker.xml 包含 my-address-settings.xml,并且对 my-address-settings.xml 进行配置更改,代理不会自动检测 my-address-settings.xml 中的更改并重新载入配置。
要强制 重新载入 broker.xml 配置文件以及其中包含的任何修改的配置文件,您必须确保 broker.xml 配置文件的"last modified"时间戳已更改。您可以使用标准 Linux touch 命令更新 broker.xml 的最后修改时间戳,而无需进行任何其他更改。例如:
touch -m <broker_instance_dir>/etc/broker.xml
$ touch -m <broker_instance_dir>/etc/broker.xml
另外,您可以使用管理 API 来强制重新载入代理。可以使用 ActiveMQServerControl 上的管理操作 reloadConfigurationFile () 重新加载配置文件(使用 ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 或资源 名称服务器)
其他资源
- 要了解如何使用管理 API,请参阅管理 AMQ Broker 中的 使用管理 API
1.4.2. 禁用外部 XML 实体(XXE)处理 复制链接链接已复制到粘贴板!
如果您不想将代理配置放在 broker.xml 文件中包含的独立文件中,您可以禁用 XXE 处理来保护 AMQ Broker 免受 XXE 安全漏洞。如果您没有模块化代理配置,红帽建议您禁用 XXE 处理。
流程
-
打开 &
lt;broker_instance_dir>/etc/artemis.profile文件。 将新参数
-Dartemis.disableXxe添加到 Java 系统参数的JAVA_ARGS列表中。-Dartemis.disableXxe=true
-Dartemis.disableXxe=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
artemis.profile文件。