关于Rabbit的一个疑问

来源:9-10 本章小结

LBruce

2020-11-19

场景:
服务器配置均8核16G,公网带宽3Mbps,测试时均走内网
1台Producer,开启200个线程,维持3分钟投递消息,最终总消息在百万级。
1台RabbitMQ,exchange为Topic模式,且只有一个Queue绑定,exchange和queue都开启持久化
1台Consumer,开启手动ACK,concurrency为20,max-concurrency为30

问题:
发现在Prodcuer进行投递的时候,几乎没有收到Consumer的手动ACK,监控面板只看到收到消息的速率和磁盘写入速率
图片描述

只有当Producer结束消息投递后,才能看到Consumer消费速率和磁盘读入速率。
图片描述

但如果关闭持久化的话,则是Producer一边投递,Consumer一边消费,几乎没有消息滞留在RabbitMQ。
图片描述
不明白为什么开启了持久化的时候,不能Producer一边投递,Consumer一边消费,个人猜想是RabbitMQ的某种机制???请老师解答一下,谢谢老师。

写回答

1回答

阿神

2020-11-25

应该是发送和消费处理是可以的,和持久化没有关系,估计是你操作仿石漆,测试有问题

0
0

RabbitMQ精讲 从0到1驾驭RabbitMQ应用与设计

从0到1,全面深入掌握RabbitMQ消息中间件技术

1460 学习 · 443 问题

查看课程