为什么使用 rabbitmq 的时候,delivery_mode 为 1,消息依旧被写到磁盘中?

我是使用 delivery_mode: 1 投递消息,但是很奇怪的是,消息的 push 速度很慢,慢到和『delivery_mode: 2』一样慢,我就打开控制面板看了看:

图片.png

可以看到 『In memory』 和 『Persistent』都是 237!这不应该呀?

但是随便 get 几个 message 看了看,确实是:『delivery_mode: 1』

图片.png

我不理解!这和 rabbitmq server 哪个配置有关系?

这个队列,不是我部署的,是我们的 k8s 管理员直接部署在 k8s 上的(相关的配置文件我也不懂)。
我再 docker 上跑了一个 rabbitmq server,不会出现这种明明是 『delivery_mode: 1』结果依旧写到了磁盘的问题!!!但是这个 k8s 中的 rabbitmq (rabbitmq:3.8-management)就有这种奇怪的问题!

我有两个怀疑对象:

  • 一个是 rabbitmq server 的 ram 不够了。(但是这个可能性很小)
  • 图片.png
  • 另一个可能是开了起 rabbitmq server 的某种特性,导致了这个问题,但是是什么特性呢?

队列的 type 都是 classic
图片.png


我发现不管是 delivery_mode 为 1 还是 delivery_mode 为 2,『In memory』 和 『Persistent』的数值都是相等的!


图片.png

阅读 3k
2 个回答

有个stream 队列好像会启用持久吧. 看是这个原因么.

是持久化到内存了吧,并没有说明是到磁盘了。我测试结果正常。这是开始的图片
pre.png

这是之后的图片
bbb.png

参数图片
Snipaste_2022-09-05_10-15-39.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题