rabbitmq集群跨机器访问引起内存占用高的问题

Posted Els0n

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitmq集群跨机器访问引起内存占用高的问题相关的知识,希望对你有一定的参考价值。

rabbitmq的队列并不是分布在集群中,而且每个节点维护自己的

假设A B组成一个集群,rabbit域名或elb指向A,那么client会连接到A。但如果目标queue在B上,rabbit就会有一个内部的“转发机”的机制来维护,相当于代理一样。通过该机制,client仍能正常操作queue

但有一个问题就是,该机制可能会引发内存升高。譬如,B的内存只有100M,A可能会达到1.5G,而此时A上的消息并未有堆积,也不繁忙

rabbitmq主要内存开销是内部database。上述问题的表现,就是binarys这个内存项目非常大

所以如果你的mq出现内存偏高,在确定无mq和erlang版本问题后,不妨从这个角度考虑一下:

将所有流量打到其队列所在的那个实例,不要跨机

以上是关于rabbitmq集群跨机器访问引起内存占用高的问题的主要内容,如果未能解决你的问题,请参考以下文章

RabbitMQ学习之集群部署

RabbitMQ 镜像集群 宕机恢复、负载均衡、跨机房多活

RabbitMQ集群原理

部署Rabbitmq集群

mysql经常占用cpu100%以上,该怎么解决

RabbitMQ教程_6 搭建集群