前言
在TCP传输中,接收端每次通过ACK确认消息,告诉发送端哪些序号的消息已经成功接收到并且在ACK中指定当前接收端接收缓冲区的大小,这样发送端发送的数据大小不能超过此大小,必要时(例如:由于发送端数据发送过快,导致接收端接收缓冲区窗口缩小,如果这时发送缓冲区已满)则阻塞发送端的应用程序write方法。如同TCP滑动窗口流量控制机制一样,rabbitmq也支持流量控制,当broker出现内存或磁盘资源等达到设置的阈值时,则会触发rabbitmq流量控制机制,阻塞消息生产端的connection,阻止生产者继续向broker发送消息,直到内存和磁盘资源不足警告解除,才会解除对connection的阻塞,从而实现流量控制机制。