4.20. 配置 retroactive 地址


将地址配置为 retroactive 可让您保留发送到该地址的消息,包括当还没有绑定到地址的队列时。当队列稍后创建并绑定到地址时,代理会重新主动将消息分发到这些队列。如果地址 没有配置为 retroactive,且还没有绑定到它,代理会丢弃发送到该地址的消息。

当您配置被动地址时,代理会创建一个类型的队列的内部实例,称为 环队列。环队列是一种特殊类型的队列,包含指定的、固定数量的消息。队列达到指定大小后,到达队列的下一个消息会强制从队列中最旧的消息。当您配置 retroactive 地址时,您间接指定内部环队列的大小。默认情况下,内部队列使用 multicast 路由类型。

retroactive 地址使用的内部环队列通过管理 API 公开。您可以检查指标并执行其他常见管理操作,如清空队列。环队列还贡献地址的总内存用量,这会影响消息分页等行为。

以下流程演示了如何将地址配置为 retroactive。

流程

  1. 打开 & lt;broker_instance_dir> /etc/broker.xml 配置文件。
  2. address-setting 元素中的 retroactive-message-count 参数指定一个值。您指定的值定义了您要保留的消息数量。例如:

    <configuration>
      <core>
        ...
        <address-settings>
           <address-setting match="orders">
              <retroactive-message-count>100</retroactive-message-count>
           </address-setting>
        </address-settings>
    ...
      </core>
    </configuration>
    注意

    您可以在代理运行时更新 retroactive-message-count 的值,可以是 broker.xml 配置文件或管理 API。但是,如果您 减少 这个参数的值,则需要一个额外的步骤,因为 retroactive 地址是通过环队列实现的。减少了 ring-size 参数的环队列不会自动从队列中删除消息,以实现新的 ring-size 值。这个行为可防止意外消息丢失。在这种情况下,您需要使用管理 API 来手动减少环队列中的消息数量。

其他资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.