为什么使用 rabbitmq 的时候,delivery_mode 为 1,消息依旧被写到磁盘中?
我是使用 delivery_mode: 1 投递消息,但是很奇怪的是,消息的 push 速度很慢,慢到和『delivery_mode: 2』一样慢,我就打开控制面板看了看:
可以看到 『In memory』 和 『Persistent』都是 237!这不应该呀?
但是随便 get 几个 message 看了看,确实是:『delivery_mode: 1』
我不理解!这和 rabbitmq server 哪个配置有关系?
这个队列,不是我部署的,是我们的 k8s 管理员直接部署在 k8s 上的(相关的配置文件我也不懂)。
我再 docker 上跑了一个 rabbitmq server,不会出现这种明明是 『delivery_mode: 1』结果依旧写到了磁盘的问题!!!但是这个 k8s 中的 rabbitmq (rabbitmq:3.8-management)就有这种奇怪的问题!
我有两个怀疑对象:
- 一个是 rabbitmq server 的 ram 不够了。(但是这个可能性很小)
- 另一个可能是开了起 rabbitmq server 的某种特性,导致了这个问题,但是是什么特性呢?
队列的 type 都是 classic
我发现不管是 delivery_mode 为 1 还是 delivery_mode 为 2,『In memory』 和 『Persistent』的数值都是相等的!
回答:
有个stream 队列好像会启用持久吧. 看是这个原因么.
回答:
是持久化到内存了吧,并没有说明是到磁盘了。我测试结果正常。这是开始的图片
这是之后的图片
参数图片
以上是 为什么使用 rabbitmq 的时候,delivery_mode 为 1,消息依旧被写到磁盘中? 的全部内容, 来源链接: utcz.com/p/938610.html