笔者不推荐大家使用这种方式,操作繁琐且不利于维护管理;
推荐大家使用docker构建RabbitMQ集群,可以点击查看这篇文章《docker-compose安装rabbitmq集群镜像队列》
或者使用K8S来进行管理,这篇文章正在路上。。。先立个flag
build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz 下载: wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm 配置文件: vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app 比如修改密码、配置等等,例如:loopback_users 中的 <<"guest">>,只保留guest 服务启动和停止: 启动 rabbitmq-server start & 停止 rabbitmqctl app_stop 管理插件:rabbitmq-plugins enable rabbitmq_management 访问地址:http://192.168.11.76:15672/提前准备1(文件同步步骤)
#选择1位主节点,则需要将1节点的cookie文件复制到2,3两个从节点上/进入目录修改权限,远程copy 到2和3节点 scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.2:/var/lib/rabbitmq/ scp /var/lib/rabbitmq/.erlang.cookie 192.168.1.3:/var/lib/rabbitmq/提前准备2 (设置host)每一台虚拟机都要更改
vim /etc/host 192.168.0.1 Bhz1 192.168.0.2 Bhz2 192.168.0.3 Bhz31. 停止mq 服务
rabbitmqctl stop
2. 组成集群方式进行启动 (配置1.1,1.2,1.3为集群模式)rabbitmq-server -detached
3. slave 加入集群操作(注意该步骤,需要配置/etc/hosts 必须相互能够寻址到)Bhz2: rabbitmqctl join_cluster rabbit@Bhz1 Bhz2: rabbitmqctl start_app Bhz3: rabbitmqctl stop_app Bhz3: rabbitmqctl join_cluster rabbit@Bhz1 Bhz3: rabbitmqctl start_app扩展: 从集群中去除某个节点(不在此处运行)
rabbitmqctl forget_cluster_node rabbit@OtherNode
扩展:设置集群如何存储(不在此处运行)rabbitmqctl join_cluster rabbit@Bhz1加入集群,默认是使用磁盘存储,即disc;如果想用内存存储,使用rabbitmqctl join_cluster --ram rabbit@Bhz1
4. 修改集群名称(在任意一个节点修改就可以了,不用每个节点都运行)rabbitmqctl set_cluster_name rabbitmq_cluster1
5. 查看集群状态rabbitmqctl cluster_status
6. 配置镜像队列策略(在任意一个节点上执行),目的是为了将所有队列设置成镜像队列,即队列会被复制到各个节点,各个节点状态一致,到此RabbitMQ高可用集群搭建完成rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
查看当前策略rabbitmqctl list_policies
删除策略rabbitmqctl clear_policy ha-11



