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>
附加资源
- 有关如何为 AMQP 生产器配置信贷的更多信息,请参阅 第 3 章 网络连接:协议。