内存换页
内存不足时
在发起警告之前开始执行
先移除持久化的消息,再把一半的 非持久化消息存盘然后从内存移除,等用到时再查出来
换页耗时长,换页时会阻塞队列、此时无法接收新消息
预警
集群节点达到崩溃边缘
阻塞生产者,消费者可以正常消费
必须马上通过命令 增加mq内存,问题解决以后 再减少
flow状态
连接的状态
running 正常状态
flow限流状态
生产者因为信用值为 0 被阻塞以后
其对应的连接 就会变成flow 限流状态
流控
基于发送端 和接收端的信用值控制来实现流控
流控流程
1 消费端被阻塞、然后mq集群信用值为0以后停止发送(或者因为ack机制的预取缓存 导致停止发送)
2 mq停止发送消息以后、消息积压在mq集群内存里
3 内存快满的时候 触发内存换页,用磁盘空间存储 消息
4 磁盘满的时候 就触发警告
5 因为磁盘快满了。无法再接收新消息。无法给生产者重置 信用值
6 导致生产者信用值为0 ,然后生产者也阻塞。
7 但此时若消费者仍然能正常消费,这mq集群仍然能正常投递消息