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集群跨机器访问引起内存占用高的问题的主要内容,如果未能解决你的问题,请参考以下文章