1.4. 模块化代理配置文件


如果您有多个共享通用配置设置的代理,您可以在单独的文件中定义通用配置,然后将这些文件包含在每个代理的 broker.xml 配置文件中。

您可以在代理之间共享的最常见配置设置包括:

  • 地址
  • 地址设置
  • 安全设置

流程

  1. 为您要共享的每个 broker.xml 部分创建单独的 XML 文件。

    每个 XML 文件只能包含来自 broker.xml 的一个部分(例如,地址或地址设置,但不能同时设置)。顶级元素还必须定义元素命名空间(xmlns="urn:activemq:core")

    本例显示了 my-security-settings.xml 中定义的安全设置配置:

    my-security-settings.xml

    <security-settings xmlns="urn:activemq:core">
       <security-setting match="a1">
          <permission type="createNonDurableQueue" roles="a1.1"/>
       </security-setting>
       <security-setting match="a2">
          <permission type="deleteNonDurableQueue" roles="a2.1"/>
       </security-setting>
    </security-settings>

  2. 为每个应使用通用配置设置的代理打开 <broker_instance_dir> /etc/broker.xml 配置文件。
  3. 对于您打开的每个 broker.xml 文件,执行以下操作:

    1. broker.xml 开头的 <configuration> 元素 中,验证是否出现以下行:

      xmlns:xi="http://www.w3.org/2001/XInclude"
    2. 为包含共享配置设置的每个 XML 文件添加 XML 包含。

      此示例包含 my-security-settings.xml 文件。

      broker.xml

      <configuration ...>
          <core ...>
              ...
              <xi:include href="/opt/my-broker-config/my-security-settings.xml"/>
              ...
          </core>
      </configuration>

    3. 如果需要,验证 broker.xml 以验证 XML 是否对架构有效。

      您可以使用任何 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
      /var/opt/amq-broker/mybroker/etc/broker.xml validates

其它资源

1.4.1. 重新加载模块配置文件

当代理定期检查配置更改时(根据 configuration-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 配置文件的"最后修改"时间戳已更改。您可以使用标准 Linux touch 命令更新 broker.xml 最后修改的时间戳,而不进行任何其他更改。例如:

$ touch -m <broker_instance_dir>/etc/broker.xml

或者,您可以使用管理 API 来强制重新加载代理。可以使用 ActiveMQServerControl 上的管理操作 reloadConfigurationFile()( 使用 ObjectName org.apache.activemq.artemis:broker="BROKER_NAME" 或资源 名称服务器)重新加载配置文件。

其它资源

  • 了解如何使用管理 API,请参阅在管理 AMQ Broker 中使用 Management API
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.