RabbitMQ普通集群模式即在多个服务器上部署多个MQ实例, 每台机器一个实例. 创建的每一个queue,只会存在一个MQ实例上. 但是每一个实例都会同步queue的元数据(即queue的标识信息). 当在进行消费的时候, 就算对应的数据在其他的MQ实例上, 其也会根据内部的queue的元数据,从该queue所在实例上拉取数据过来.这种方式只是一个简单的集群,并没有考虑高可用。由于需要不断去其他实例拉取数据,所以性能开销巨大.容易造成单实例的性能瓶颈. 并且如果真正有数据的那个queue的实例宕机了. 那么其他的实例就无法进行数据的拉取.这种方式只是通过集群部署的方式提高了消息的吞吐量,但是并没有考虑到高可用.
部署流程:
1、首先在第二和第三节点完成rabbitmq的安装
yum -y install erlang
yum -y install rabbitmq-server
2、将主节点的cookie,拷贝到从节点中,并修改对应的权限
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.64.128:/var/lib/rabbitmq/.erlang.cookie
scp /var/lib/rabbitmq/.erlang.cookie root@192.168.64.131:/var/lib/rabbitmq/.erlang.cookie
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
3、启动rabbitmq服务,并关闭非主节点对应app
service rabbitmq-server start
rabbitmqctl stop_app
4、将非主节点加入到主节点的集群,bogon1对主节点的hostname
rabbitmqctl join_cluster --ram rabbit@bogon1
5、加入集群以后则,启动对应app即可,到此,普通集群模式部署完成。
rabbitmqctl start_app