1.虚拟机安装centos
没有配置DNS会引起的问题
yum命令
ssh命令等不能进行,参考
https://blog.csdn.net/jasonhector/article/details/78657532
2.yum安装net-tools:
yum install net-tools
安装完成后需要添加用户才可以访问管理台页面
rabbitmq集群分为:镜像模式和普通模式(内存节点和磁盘节点之分)
集群通过.erlang.cookie文件(不同节点的文件需要一样)实现数据同步,文件路径/var/lib/rabbitmq/.erlang.cookie 查看隐藏文件:ls -a
更改hostname之后重启
重启之后,集群通过hostname进行通信,先修改host文件,然后ping通hostname,
vi /etc/hosts
结尾处添加
192.168.220.128 rabbitmq1
192.168.220.129 rabbitmq2
192.168.220.130 rabbitmq3
然后搭建rabbitmq2与rabbitmq1的集群
1.先关闭mq2的应用,rabbitmqctl stop_app
2.连接mq1,并设置当前节点为内存(ram,磁盘节点为dis)节点 rabbitmqctl join_cluster rabbit@rabbitmq1 --ram
3.启动mq2,rabbitmqctl start_app
镜像模式------就是普通模式加上镜像队列
通过维护master节点和slave节点,进行队列全部信息的复制
当master节点存在时,通过master节点进行操作,再与slave节点同步。如果master节点down机,从slave节点再随机选出一个master节点
有两种添加镜像队列方法:代码中或者控制台(优选)
Map<String,Object> map= new HashMap<>();
map.put("x-ha-policy","all");//镜像队列,在所有节点发生镜像
map.put("x-ha-nodes","[rabbitmq@rabbitmq1,]");//镜像加在那些节点上
这里举个例子 如果想配置所有名字开头为 policy的队列进行镜像 镜像数量为1那么命令如下:
rabbitmqctl set_policy ha_policy "^policy_" '{"ha-mode":"exactly","ha-params":1,"ha-syncmode":"automatic"}'
HAProxy:插件进行负载均衡,地址直接连这个插件不用直接连rabbitmq了