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版本问题后,不妨从这个角度考虑一下:

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

时间: 2024-10-07 22:20:58

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

Rabbitmq集群高可用测试

Rabbitmq集群高可用 RabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡. Rabbit模式大概分为以下三种:单一模式.普通模式.镜像模式 单一模式:最简单的情况,非集群模式. 没什么好说的. 普通模式:默认的集群模式. 对于Queue来说,消息实体只存在于其中一个节点,A.B两个节点仅有相同的元数据,即队列结构. 当消息进入A节点的Queue中后,consumer从B节点拉取时,RabbitMQ会临时在A.B间进行消息传

Rabbitmq集群高可用

MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法 RabbitMQ是流行的开源消息队列系统,用erlang语言开发 几个概念说明: Broker:简单来说就是消息队列服务器实体. Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列. Queue:消息队列载体,每个消息都会被投入到一个或多个队列. Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来. Routing Key:路由关键字,exchange根据

rabbitMQ 集群的配置

参考文档:http://blog.csdn.net/woogeyu/article/details/51119101 环境说明 在两个不同的主机上创建两个节点主机IP,主机名如下 10.176.0.13 node1 10.176.0.19 node2 1.分别在两个主机上安装rabbitMQ(一个主机一个rabbitMQ),注意语言环境erlang和rabbitMQ的版本必须一致 2.集群的配置 RabbitMQ集群中所有节点都是平等的,没有绝对的主次之分,每一个节点的配置信息都会在集群中进行同

高可用RabbitMQ集群安装配置

RabbitMQ集群安装配置+HAproxy+Keepalived高可用 rabbitmq 集群 消息队列 RabbitMQ简介 RabbitMQ是流行的开源消息队列系统,用erlang语言开发.RabbitMQ是AMQP(高级消息队列协议)的标准实现. AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计.消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然.AMQP的主

CentOS+rabbitMQ集群配置

1.实验环境 rabbitmq-node1.com192.168.1.112 rabbitmq-node2.com192.168.1.113 rabbitmq-node3.com192.168.1.128 2.配置前检查同步时间 #ntpdate pool.ntp.org 3.注意一定要修改hosts #cat /etc/hosts 192.168.1.112   rabbitmq-node1.com rabbitmq-node1 192.168.1.113   rabbitmq-node2.c

rabbitmq集群搭建方法简介(测试机linux centos)【转】

本文将介绍四台机器搭建rabbitmq集群: rabbitmq IP和主机名(每台机器已安装RabbitMQ 3.5.6, Erlang 18.1) 192.168.87.73 localhost73 192.168.87.74 localhost74 192.168.87.75 localhost75 192.168.87.76 localhost76 将上述IP和主机名添加到hosts文件( vim /etc/hosts) Rabbitmq的集群是依赖于erlang的集群来工作的,所以必须先

Rabbitmq集群部署手册

一.Rabbitmq集群部署手册 1.环境介绍 系统环境:Red HatEnterprise Linux Server release 6.2 (Santiago) 内核版本:Linux zxt-02.com2.6.32-220.el6.x86_64 #1 SMP Wed Nov 9 08:03:13 EST 2011 x86_64 x86_64 x86_64GNU/Linux 软件版本:otp_src_17.3:rabbitmq-server-3.2.4:Python 2.6.6:simple

在CentOS7上部署Rabbitmq集群配置

概述 RabbitMQ是目前流行的开源消息队列系统.MQ(消息队列)是一种应用程序对应用程序的通信方法. RabbitMQ的结构图如图所示: 实现步骤 在一个集群里,有三台服务器,其中一台使用磁盘模式,另两台使用内存模式.两台内存模式的节点无疑速度更快,因此通过客户端连接访问它们.但是客户端不可能分别连接两个内存节点,肯定是通过前端反向代理去轮询分发请求如果担心前端反向代理服务器故障,可以通过Keepalived软件做一个高可用架构.而磁盘模式的节点,由于磁盘IO相对较慢,因此仅作数据备份使用.

Centos7搭建RabbitMQ集群

本片博客简单介绍rabbitmq单节点以及集群的配置安装,使用和rabbitmq的命令,和图形界面简单的介绍使用 话不多说直接进入正题,首先介绍下rabbitmq: rabbitmq的历史:RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现.AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实