跳至主内容
版本:4.2

流控制

概述

本指南介绍了 RabbitMQ 节点应用于发布连接的反压机制,以避免内存使用量失控增长。这是必要的,因为节点中的某些组件可能跟不上特别快的发布者,因为它们需要比发布客户端做更多的工作(例如,将数据复制到 N 个对等节点或将其存储在磁盘上)。

流控制如何工作

RabbitMQ 将会降低发布速度过快导致队列跟不上的连接的速度。无需进行任何配置。

一个处于流控制状态的连接将在 rabbitmqctl、管理 UI 和 HTTP API 响应中显示 flow 状态。这意味着该连接正在每秒进行多次阻塞和解除阻塞,以使消息流入速率保持在服务器的其他部分(例如,消息被路由到的队列)能够处理的范围内。

总的来说,一个处于流控制状态的连接不应该与正常运行有任何区别;flow 状态是为了告知系统管理员发布速率受到限制,但从客户端的角度来看,它应该看起来只是到服务器的网络带宽比实际情况低。

除了连接之外,其他组件也可以处于 flow 状态。通道、队列以及系统的其他部分可以应用流控制,最终会传播回发布连接。

要了解消费者和预取设置是否可能是关键的限制因素,请查看相关指标。请参阅监控与健康检查指南以了解更多信息。

© . This site is unofficial and not affiliated with VMware.