一、消息可靠性保障
二、消息幂等性保障
三、RabbitMQ集群搭建
1、停止RabbitMQ服务:service rabbitmq-server stop
2、启动第1个RabbitMQ集群结点:管理界面为15672
RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit1 rabbitmq-server start
注意:上图表示启动成功,但当前界面不能再输入命令了。要新开一个命令窗口。(其实Ctr+Z亦可,结点不会被停止)
3、启动第2个结点:管理界面为15674
RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit2 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15674}]" rabbitmq-server start
4、结果:
5、正式搭建集群:
1)、停止rabbit1结点:rabbitmqctl -n rabbit1 stop_app
2)重置rabbit1结点:rabbitmqctl -n rabbit1 reset
3)启动rabbit1结点:rabbitmqctl -n rabbit1 start_app
4)、停止rabbit2结点:rabbitmqctl -n rabbit2 stop_app
5)、重置rabbit2结点:rabbitmqctl -n rabbit2 reset
6)、把rabbit2结点加到rabbit1结点:rabbitmqctl -n rabbit2 join_cluster [email protected]'VM-0-10-centos'
说明:加入命令中@后面是主机名!
加入后的结果:
说明:
a、如果不知道主机名,上图可以得知。
b、上图表明rabbit2结点尚未启动。
7)启动rabbit2结点:rabbitmqctl -n rabbit2 start_app
四、互相备份
上面设置完后,的确形成了一个集群,但rabbit1结点的消息可以在rabbit2结点中看到,反之亦然。但rabbit1中的消息在rabbit2中并没有备份,如果rabbit1不能访问了,那么原先在rabbit1中的消息也就跟着不能访问。要解决这个问题,就得配置镜像。
在任意一个RabbitMQ管理界面进行设置
设置完就OK了。