4.20. 配置被动地址
将地址配置为 retroactive 可让您保留发送到该地址的消息,包括没有队列绑定到该地址时。当队列稍后创建并绑定到地址时,代理会主动将消息分发到这些队列。如果地址 没有配置为 retroactive,且还没有绑定到它的队列,代理会丢弃发送到该地址的消息。
当您配置 retroactive 地址时,代理会创建一个内部实例,它称为 环队列。环队列是特殊的队列类型,包含指定的固定数量的消息。队列达到指定大小后,到达队列的下一消息会强制从队列中最旧的消息。当您配置 retroactive 地址时,您可以间接指定内部环队列的大小。默认情况下,内部队列使用 multicast
路由类型。
由 retroactive 地址使用的内部环队列通过管理 API 公开。您可以检查指标并执行其他常见管理操作,如清空队列。环队列也贡献了地址的总内存用量,这会影响消息分页等行为。
以下流程演示了如何将地址配置为 retroactive。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml
配置文件。 为
address-setting
元素中的retroactive-message-count
参数指定一个值。您指定的值定义您希望代理保留的消息数量。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可以在代理运行时,在
broker.xml
配置文件或管理 API 中更新retroactive-message-count
的值。但是,如果您 降低 此参数的值,则需要额外步骤,因为 retroactive 地址通过环队列实施。降低ring-size
参数的环队列不会自动从队列中删除消息,以达到新的ring-size
值。此行为是防止意外消息丢失的保护。在这种情况下,您需要使用管理 API 来手动减少环队列中的消息数量。
其他资源
- 有关环队列的更多信息,请参阅 第 4.19 节 “配置环队列”。