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>
    注意

    默认情况下,默认值非破坏性 的值是 false

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.