微系列:6、在Centos系统中,搭建RabbitMQ集群

一、安装erlang

编辑/etc/yum.repos.d/rabbitmq_erlang.repo文件,配置yum源,如下.

[rabbitmq_erlang]name=rabbitmq-rabbitmq-erlangbaseurl=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/7/$basearchrepo_gpgcheck=1enabled=1gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.ascgpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crtmetadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md
[rabbitmq_erlang-noarch]name=rabbitmq-rabbitmq-erlang-noarchbaseurl=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/7/noarchrepo_gpgcheck=1enabled=1gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.ascgpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crtmetadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md
[rabbitmq_erlang-source]name=rabbitmq-rabbitmq-erlang-sourcebaseurl=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/rpm/el/7/SRPMSrepo_gpgcheck=1enabled=1gpgkey=https://dl.cloudsmith.io/public/rabbitmq/rabbitmq-erlang/gpg.E495BB49CC4BBE5B.key       https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.ascgpgcheck=1sslverify=1sslcacert=/etc/pki/tls/certs/ca-bundle.crtmetadata_expire=300pkg_gpgcheck=1autorefresh=1type=rpm-md

执行命令进行安装erlang

yum update -yyum install -y erlang-23.3.4

二、安装RabbitMQ

下载RabbitMQ包

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.8/rabbitmq-server-3.8.8-1.el7.noarch.rpmrpm –import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

安装相关依赖

yum install socat -y

安装RabbitMQ

rpm -Uvh rabbitmq-server-3.8.8-1.el7.noarch.rpm

防火墙设置

firewall-cmd --add-port=4369/tcp --permanentfirewall-cmd --add-port=5672/tcp --permanentfirewall-cmd --add-port=25672/tcp --permanentfirewall-cmd --add-port=5671-5672/tcp --permanentfirewall-cmd --add-port=15672/tcp --permanentfirewall-cmd --add-port=61613-61614/tcp --permanentfirewall-cmd --add-port=1883/tcp --permanentfirewall-cmd --add-port=8883/tcp --permanent
firewall-cmd --reload

三、配置RabbitMQ参数

配置host,执行vim /etc/hosts,写入以下内容,各个节点上一致

192.168.0.1 node01192.168.0.2 node02192.168.0.3 node03

配置hostname(注意,每个节点不一样),执行vim /etc/hostname,写入以下内容

node01

编辑网络配置文件,执行

vim /etc/sysconfig/network
NETWORKING=yesHOSTNAME=node01

重启network

systemctl restart network

配置erlang cookie,RabbitMQ 集群是基于erlang进行同步,cookie中各个节点内容一致

cookie所在文件/var/lib/rabbitmq/.erlang.cookie

四、启动节点

启动rabbitmq-server

systemctl start rabbitmq-server

将其他节点加入集群 假设有01,02,03三个节点,在02,03节点上执行以下命令

rabbitmqctl stop_apprabbitmqctl join_cluster rabbit@node01rabbitmqctl start_app

查看集群状态

rabbitmqctl cluster_status

五、设置RabbitMQ

添加vhost

rabbitmqctl add_vhost cxt_local

创建用户

rabbitmqctl add_user cxt_local password

设置用户角色

rabbitmqctl set_user_tags cxt_local administrator

设置用户权限

rabbitmqctl set_permissions -p cxt_local cxt_local ".*" ".*" ".*"

启用web界面

rabbitmq-plugins enable rabbitmq_management

设置高可用模式 使用admin用户登录页面,设置User policies,将队列设置为HA模式,如下图

微系列:6、在Centos系统中,搭建RabbitMQ集群