美文网首页
RabbitMq集群搭建

RabbitMq集群搭建

作者: Demons_LLL | 来源:发表于2021-06-07 16:47 被阅读0次

准备工作

系统:Centos7.6 / 64 位
Rabbit:v3.7.8
Erlang/OTP 21.0:v21.0
官网查看版本依赖:https://www.rabbitmq.com/which-erlang.html

RabbitMq集群(镜像模式)

实例 IP 端口 备注
rabbit1 10.88.40.112(node01) 5672、25672、15672 磁盘节点
rabbit2 10.88.40.104(node02) 5672、25672、15672 磁盘节点
rabbit3 10.88.40.174(node03) 5672、25672、15672 内存节点

系统依赖

yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

安装erlang

1. wget https://www.erlang.org/downloads/otp_src_21.0.tar.gz //下载Erlang
2. tar -zxvf otp_src_21.1.tar.gz //解压
3. mv otp_src_21.1 /usr/local/ //移动文件
4. cd /usr/local/otp_src_21.1/ //切换目录
5. mkdir ../erlang //创建目录
6. ./configure --prefix=/usr/local/erlang //配置安装路径
7. make install //编译安装
8. ll /usr/local/erlang/bin //查看一下是否安装成功
9. echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile //添加环境变量
10. source /etc/profile //刷新环境变量
11. erl //校验erlang , halt().命令退出来
erl

安装RabbitMQ

1. wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz //下载
2. yum install -y xz //由于是tar.xz格式的所以需要用到xz,没有的话就先安装
3. /bin/xz -d rabbitmq-server-generic-unix-3.7.8.tar.xz //第一次解压
4. tar -xvf rabbitmq-server-generic-unix-3.7.8.tar //第二次解压
5. mv rabbitmq_server-3.7.8/ /usr/local/ //移动目录
6. cd /usr/local/ //切换目录
7. mv rabbitmq_server-3.7.8/ rabbitmq //重命名
8. echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile //写入环境变量
9. source /etc/profile //更新环境变量
10. mkdir /etc/rabbitmq //创建配置目录
11. rabbitmq-server -detached //启动
12. rabbitmqctl [stop|status] //停止|状态
13. rabbitmq-plugins enable rabbitmq_management //开启web插件
14. rabbitmqctl list_users //查看所有用户
15. rabbitmqctl add_user admin admin //添加一个用户
16. rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*" //配置权限
17. rabbitmqctl list_user_permissions admin //查看用户权限
18. rabbitmqctl set_user_tags admin administrator //设置tag
19. rabbitmqctl list_users //查看所有用户
20. rabbitmqctl delete_user guest //删除用户(安全起见,删除默认用户)
rabbitmq

配置普通集群模式(1-5、6配置镜像模式)

1. find / -name '.erlang.cookie' //查找.erlang.cookie文件位置
1
2. scp .erlang.cookie root@node02:/root/
3. scp .erlang.cookie root@node03:/root/
# 在 node02 操作
rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@node01 //加入集群(默认加入的为磁盘节点)
rabbitmqctl start_app

# 在 node03 操作
rabbitmqctl stop_app
rabbitmqctl join_cluster --ram rabbit@node01 //如果要使用内存节点,则可以使用
rabbitmqctl start_app
4. rabbitmqctl status //查看节点状态
5. rabbitmqctl cluster_status //查看集群状态
6. https://www.cnblogs.com/huligong1234/p/13549450.html
rabbitmqctl set_policy [ha-all] "^" '{"ha-mode":"all"}' //策略正则表达式为 “^” 表示所有匹配所有队列名称
rabbitmqctl set_policy -p [虚拟主机名称] [策略名称如ha-all ] "^" '{"ha-mode":"all" , "ha-sync-mode":"automatic"}'

在任意一个节点上执行:
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all" , "ha-sync-mode":"automatic"}'

或者指定vhost:
rabbitmqctl set_policy -p demo ha-all "^" '{"ha-mode":"all" , "ha-sync-mode":"automatic"}'
将所有队列设置为镜像队列,即队列会被复制到各个节点,各个节点状态保持一直。
到这里,RabbitMQ 高可用集群就已经搭建好了,最后一个步骤就是搭建均衡器。

策略名称:自定义
“^”:匹配所有队列
ha-sync-mode: 默认为手动,可以配置为自动,区别在于,如果是自动做镜像回复,则该队列会处于不可用状态直到同步完成
image.png
image.png

相关文章

网友评论

      本文标题:RabbitMq集群搭建

      本文链接:https://www.haomeiwen.com/subject/vvgzjltx.html