10.2.3. 阻塞 AMQP 消息


如本章前文中所述,核心协议使用制作器窗口大小流控制系统。在此系统中,学分代表字节数,并分配到制作者。如果制作者想要发送消息,则必须等到它有充足的得分,以适应消息的大小,然后再发送消息。

但是,AMQP 流控制学分不是字节的代表,而是代表制作者被允许发送的消息数量,而不考虑消息大小。因此,在一些情况下,AMQP 客户端会显著超过地址的 max-size-bytes

要管理此情况,请将元素 max-size-bytes-reject-threshold 添加到 address-setting 中,以指定地址大小(以字节为单位)的上限。达到这个上限后,代理将拒绝 AMQP 消息。默认情况下,max-size-bytes-reject-threshold 设置为 -1,或者没有限制。

将 Broker 配置为块 AMQP 消息

要将代理配置为在最大字节数范围内阻止 AMQP 消息,请将一个新的 addres-setting 配置元素添加到 BROKER_INSTANCE_DIR/etc/broker.xml

步骤

  • 以下示例配置将最大大小为 300000 字节应用到路由到 my.amqp.blocking.queue 地址的任何 AMQP 消息。

    <configuration>
      <core>
        ...
        <address-settings>
           ...
           <address-setting match="my.amqp.blocking.queue"> 1
              <max-size-bytes-reject-threshold>300000</max-size-bytes-reject-threshold>  2
           </address-setting>
        </address-settings>
      </core>
    </configuration>
1
以上配置适用于由 my.amqp.blocking.queue 地址引用的任何队列。
2
代理配置为拒绝发送到与此地址匹配的队列的 AMQP 消息,如果它们大于 max-size-bytes-reject-threshold300000 字节。请注意,这个元素 不支持 字节表示法,如 KMb、和 GB

附加资源

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.