rabbitmq 集群安装

rabbitmq 集群安装叙述

rabbitmq集群模式有2种,普通模式(默认)和镜像模式;rabbitmq节点有2种,磁盘模式和内存模式,一个集群内必须存在一个节点是磁盘模式,否则无法做持久化设置,我们有3个节点,设置2个内存节点和1个磁盘节点。

安装普通集群准备工作

  • 准备3台已安装rabbitmq单机版的服务器,如果未安装请点击此链接参考
    • 笔者准备好的3台服务器IP:
    • 192.168.153.131
    • 192.168.153.130
    • 192.168.153.129
  • 注意关闭防火墙
    # 关闭防火墙服务
    [root@rabbitmq-node1 ~]# systemctl stop firewalld.service
    # 开机禁止防火墙启动
    [root@rabbitmq-node1 ~]# systemctl disable firewalld.service
    
  • 设置主机hostname
    • 192.168.153.131 hostname设置成 rabbitmq-node1
    • 192.168.153.130 hostname设置成 rabbitmq-node2
    • 192.168.153.129 hostname设置成 rabbitmq-node3
    • 设置hostname方法:
    # 进入编辑模式,然后不同服务器设置不同的hostname,设置好后使用重启命令reboot重启服务器才生效
    [root@rabbitmq-node1 ~]# vi /etc/hostname
    # 查看设置好的hostname
    [root@rabbitmq-node1 ~]# cat /etc/hostname 
    rabbitmq-node1
    
  • 设置hosts文件,让3台服务器能互通,3台服务器配置相同
    # 进入hosts文件
    [root@rabbitmq-node1 ~]# vi /etc/hosts
    # 查询hosts文件配置
    [root@rabbitmq-node1 ~]# cat /etc/hosts
    127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
    ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
    192.168.153.131 rabbitmq-node1
    192.168.153.130 rabbitmq-node2
    192.168.153.129 rabbitmq-node3
    # 使用ping 命令检查是否能正常通讯
    [root@rabbitmq-node1 ~]# ping rabbitmq-node1
    PING rabbitmq-node1 (192.168.153.131) 56(84) bytes of data.
    64 bytes from rabbitmq-node1 (192.168.153.131): icmp_seq=1 ttl=64 time=0.029 ms
    64 bytes from rabbitmq-node1 (192.168.153.131): icmp_seq=2 ttl=64 time=0.024 ms
    64 bytes from rabbitmq-node1 (192.168.153.131): icmp_seq=3 ttl=64 time=0.053 ms
    

同步.erlang.cookie内容

  • .erlang.cookie文件内容相当于rabbitmq集群通讯的秘钥,必须保持一致
  • 把rabbitmq-node1(192.168.153.131)服务器的.erlang.cookie复制到另外2台
  • .erlang.cookie文件路径 /var/lib/rabbitmq/.erlang.cookie
# 查看 rabbitmq-node1(192.168.153.131) 的内容,JqL2scmsek4xKVlYcanH9A复制到另外2台机器,提示:使用命令wq!强制保存
 [root@rabbitmq-node1 ~]# cat /var/lib/rabbitmq/.erlang.cookie 
JqL2scmsek4xKVlYcanH9A

# 查看 rabbitmq-node2(192.168.153.130) 的内容与131保存一致
[root@rabbitmq-node2 ~]# cat /var/lib/rabbitmq/.erlang.cookie 
JqL2scmsek4xKVlYcanH9A

# 查看 rabbitmq-node3(192.168.153.129) 的内容与131保存一致
[root@rabbitmq-node3 ~]# cat /var/lib/rabbitmq/.erlang.cookie 
JqL2scmsek4xKVlYcanH9A

配置rabbitmq普通集群

  • 进入rabbitmq-node1(192.168.153.131)
# 新增一个rabbitmq.conf配置文件暂不配置,后续可以根据需要来配置此文件
[root@rabbitmq-node1 ~]# vi /etc/rabbitmq/rabbitmq.conf

# 新增一个rabbitmq-env.conf 环境配置文件,设置RABBITMQ_NODE_IP_ADDRESS=
[root@rabbitmq-node1 ~]# vi /etc/rabbitmq/rabbitmq-env.conf

# 查看rabbitmq-env.conf 环境配置信息,注意如果不设置此配置rabbitmq会启动失败
# RABBITMQ_NODE_IP_ADDRESS配置:空字符串,意味着它应该绑定到所有网络接口
[root@rabbitmq-node1 ~]# cat /etc/rabbitmq/rabbitmq-env.conf 
RABBITMQ_NODE_IP_ADDRESS=

# 启动rabbitmq
[root@rabbitmq-node1 ~]# rabbitmq-server start &
  • 进入rabbitmqn-node2(192.168.153.130)
# 新增一个rabbitmq.conf配置文件暂不配置,后续可以根据需要来配置此文件
[root@rabbitmq-node2 ~]# vi /etc/rabbitmq/rabbitmq.conf

# 新增一个rabbitmq-env.conf 环境配置文件,设置RABBITMQ_NODE_IP_ADDRESS=
[root@rabbitmq-node2 ~]# vi /etc/rabbitmq/rabbitmq-env.conf

# 启动rabbitmq
[root@rabbitmq-node2 ~]# rabbitmq-server start &

# 停止rabbitmq
[root@rabbitmq-node2 ~]# rabbitmqctl stop_app

# 加入集群,注意:--ram是内存模式 --disc是磁盘模式(默认)
rabbitmqctl join_cluster --ram rabbit@rabbitmq-node1
# 启动
[root@rabbitmq-node2 ~]# rabbitmqctl start_app
  • rabbitmq-node3按照rabbitmq-node2的步骤执行

新增rabbitmq web登录账户并验证

  • 在rabbitmq-node1新增账号
# 新增账号密码
[root@rabbitmq-node1 ~]# rabbitmqctl add_user admin admin
# 设置角色
[root@rabbitmq-node1 ~]# rabbitmqctl set_user_tags admin administrator
# 设置权限
[root@rabbitmq-node1 ~]# rabbitmqctl set_permissions admin ".*" ".*" ".*"
  • 在浏览器输入http://192.168.153.131:15672 登录
  • 登录成功看到1个磁盘节点,2个内存节点
    在这里插入图片描述

总结

  • 配置rabbitmq集群前,请确认rabbitmq单机版是否能正常启动和关闭
  • 修改服务器的主机名称hostname记得重启服务器
  • 请检查防火墙是否关闭,或者添加已信任的端口
  • 修改hosts文件后,记得使用ping校验网络是否畅通
  • 连接集群前,先启动rabbitmq,然后使用rabbitmqctl stop_app停止,在使用rabbitmqctl join_cluster命令连接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值