搭建普通集群
注意,一定要在三台虚拟机上运行起来,可以看到管理界面,我最开始就是没有,搞了半天也不知道咋回事,然后我全部重来,先做到每台都能访问,然后在停掉,再后台启动,再。。。。
三台虚拟机(centos7)
#要修改主机名,并且在/etc/hosts里面配置映射
192.168.40.20 mq1
192.168.40.21 mq2
192.168.40.22 mq3
三台主机上rabbitmq的cookie一样,位置/var/lib/rabbirmq/.erlang.cookie
cat /var/lib/rabbitmq/.erlang.cookie#查看cookie
rabbitmq-server -detached #后台启动rabbitmq(后台运行时这个时候是看不到web界面的)https://www.rabbitmq.com/clustering.html
rabbitmqctl cluster_status #查看集群状态
搭建集群,把mq2和mq3加入到mq1上面
#以下三个步骤分别在mq2,mq3上面执行
rabbitmqctl stop_app #首先使用这个命令停掉mq2,mq3
rabbitmqctl reset #再reset掉mq2,mq3(官网步骤)
rabbitmqctl join_cluster rabbit@rabbit1 #把mq2,mq3加入到mq1
rabbitmqctl start_app #启动mq2,mq3
最后在查看集群状态rabbitmqctl cluster_status
Cluster status of node rabbit@mq2 ...
Basics
Cluster name: rabbit@mq1
Disk Nodes
rabbit@mq1
rabbit@mq2
rabbit@mq3
Running Nodes
rabbit@mq1
rabbit@mq2
rabbit@mq3
Versions
rabbit@mq1: RabbitMQ 3.8.9 on Erlang 23.1.5
rabbit@mq2: RabbitMQ 3.8.9 on Erlang 23.1.5
rabbit@mq3: RabbitMQ 3.8.9 on Erlang 23.1.5
Maintenance status
Node: rabbit@mq1, status: not under maintenance
Node: rabbit@mq2, status: not under maintenance
Node: rabbit@mq3, status: not under maintenance
搭建成功,普通集群的话主要还是靠主节点,如果主节点宕机了的话,从机是拿不到消息的,因为如果在从机上面消费,从机会去主机上面那消息提供消费者消费
镜像集群
镜像其实就是配置policy,大家可以去查一下有关policy的命令
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'
#"^"表示所有队列,"^hello"表示以hello开头的所有队列
#"ha-mode":"all"策略,表示所有节点都做镜像
在这里也可以用web界面的方式添加,如果参数不懂什么意思,可以点击?查看
镜像也就是针对队列,做多节点的复制,如果主节点宕机了从节点也是可以使用的