CentOS 7 下 RabbitMQ 集群搭建
Posted 答案
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7 下 RabbitMQ 集群搭建相关的知识,希望对你有一定的参考价值。
环境
10.0.0.20 node1 10.0.0.21 node2 10.0.0.22 node3
搭建(在所有节点执行)
添加EPEL源
[[email protected] ~]# rpm -Uvh https://dl.Fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
添加Erlang
[[email protected] ~]# rpm -Uvh http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
安装RabbitMQ
[[email protected] ~]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm [[email protected] ~]# rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc [[email protected] ~]# yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm
启动服务
[[email protected] ~]# systemctl enable rabbitmq-server.service [[email protected] ~]# systemctl start rabbitmq-server.service
查看端口监听状态 5672为集群间通信端口,15672为web端管理端口
[[email protected] ~]# netstat -atn |grep 5672
启用RabbitMQ监控插件
[[email protected] ~]# rabbitmq-plugins enable rabbitmq_management
RabbitMQ用户管理
添加用户为:root ,密码为:admin)
[[email protected] ~]# rabbitmqctl add_user admin admin
设置用户角色(设置admin用户为管理员角色)
[[email protected] ~]# rabbitmqctl set_user_tags admin administrator
设置用户权限(设置admin用户配置、写、读的权限)
[[email protected] ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
删除用户(删除guest用户)
[[email protected] ~]# rabbitmqctl delete_user guest
RabbitMQ集群配置
添加/etc/hosts条目,在node1、node2、node3 里的/etc/hosts文件中分别添加
10.0.0.20 node1 10.0.0.21 node2 10.0.0.22 node3
设置 Erlang Cookie
Erlang Cookie 文件:/var/lib/rabbitmq/.erlang.cookie。这里将 node3 的该文件复制到 node1、node2,由于这个文件权限是 400,所以需要先修改 node1、node2 中的该文件权限为 777,然后将 node3 中的该文件拷贝到 node1、node2,最后将权限和所属用户/组修改回来。
将node3 的cookie发送到 node1和node2 上
[[email protected] ~]# chmod 777 /var/lib/rabbitmq/.erlang.cookie [[email protected] ~]# chmod 777 /var/lib/rabbitmq/.erlang.cookie [[email protected] ~]# scp /var/lib/rabbitmq/.erlang.cookie 10.0.0.20:/var/lib/rabbitmq/.erlang.cookie [[email protected] ~]# scp /var/lib/rabbitmq/.erlang.cookie 10.0.0.21:/var/lib/rabbitmq/.erlang.cookie [[email protected] ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie [[email protected] ~]# chmod 400 /var/lib/rabbitmq/.erlang.cookie
启动服务
[[email protected] ~]# systemctl start rabbitmq-server.service
[[email protected] ~]# rabbitmq-server -detached
配置防火墙(如果开启)
[[email protected] ~]# firewall-cmd --permanent --add-port={4369/tcp,25672/tcp}
[[email protected] ~]# firewall-cmd --reload
配置集群
默认是磁盘节点,如果是内存节点的话,需要加--ram参数
将node1节点加入node3作为RAM类型节点
[[email protected] ~]#rabbitmqctl stop_app [[email protected] ~]#rabbitmqctl reset [[email protected] ~]#rabbitmqctl join_cluster [email protected] --ram [[email protected] ~]#rabbitmqctl start_app
将node2节点加入node3 作为disc类型节点
[[email protected] ~]#rabbitmq stop_app [[email protected] ~]#rabbitmqctl reset [[email protected] ~]#rabbitmqctl join_cluster [email protected] [[email protected] ~]#rabbitmqctl start_app
(rabbitmq集群节点有disc 和ram两种类型,一个集群中至少要有一个disc类型的节点,不指定默认加入为disc)
设置镜像队列策略
[[email protected] ~]# rabbitmqctl set_policy ha-all "^" ‘{"ha-mode":"all"}‘
查看状态
查看应用状态
[[email protected] ~]# rabbitmqctl status
查看集群信息
[[email protected] ~]# rabbitmqctl cluster_status
访问任意管理端界面查看
http://ip:15672
以上是关于CentOS 7 下 RabbitMQ 集群搭建的主要内容,如果未能解决你的问题,请参考以下文章
CentOS7 使用docker安装rabbitMQ并搭建集群