跳至主要内容
版本:4.0

流量控制

概述

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

流量控制的工作原理

RabbitMQ 会降低发布速度过快的连接,以使队列能够跟上。不需要任何配置。

流量控制的连接将在 rabbitmqctl、管理 UI 和 HTTP API 响应中显示 flow 状态。这意味着连接每秒会经历多次阻塞和解除阻塞,以将消息传入速率保持在服务器(例如,消息路由到的队列)可以处理的速率。

通常,处于流量控制状态的连接不会看到与正常运行有任何区别;flow 状态是为了通知系统管理员发布速率受限,但从客户端的角度来看,它看起来就像到服务器的网络带宽低于实际带宽一样。

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

若要了解消费者和 预取设置 是否是关键限制因素,请 查看相关指标。请参阅 监控和运行状况检查 指南以了解更多信息。

© 2024 RabbitMQ. All rights reserved.