4.11.4. 为最后一个值队列强制使用非破坏性


当消费者连接到队列时,通常的行为是发送到该消费者的消息只能被消费者获取。当消费者确认接收消息时,代理会从队列中删除消息。

作为正常消耗的替代方案,您可以将队列配置为强制实施 非破坏性 消耗。在这种情况下,当队列向消费者发送消息时,其他消费者仍然可以收到该消息。此外,即使消费者已经使用过该消息,该消息也会保留在队列中。当您实施这种非破坏性消耗行为时,消费者被称为队列 浏览器

强制使用非破坏性是最后一个值队列的实用配置,因为它可确保队列始终保存特定最后值键的最新值。

以下步骤演示了如何为最后一个值队列强制实施非破坏性消耗。

先决条件

流程

  1. 打开 <broker_instance_dir>/etc/broker.xml 配置文件。
  2. 如果您之前将队列单独配置为最后一个值队列,请添加 非破坏性 密钥。将值设为 true。例如:

    <address name="my.address">
       <multicast>
          <queue name="orders1" last-value-key="stock_ticker" non-destructive="true" />
       </multicast>
    </address>
  3. 如果您之前为最后一个值队列配置了地址或 一组 地址,请添加 默认值非破坏性 密钥。将值设为 true。例如:

    <address-setting match="lastValue">
       <default-last-value-key>stock_ticker </default-last-value-key>
       <default-non-destructive>true</default-non-destructive>
    </address-setting>
    注意

    默认情况下,default -non-destructive 的值为 false

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.