目录
[1. 配置和拷贝解析文件](#1. 配置和拷贝解析文件)
[2. 配置官方YUM源](#2. 配置官方YUM源)
[3. 安装和启动](#3. 安装和启动)
[三、搭建 rabbitmq 的一般模式集群](#三、搭建 rabbitmq 的一般模式集群)
[1. 统一 erlang.cookie 文件中 cookie 值](#1. 统一 erlang.cookie 文件中 cookie 值)
[2. Rabbitmq 集群添加节点](#2. Rabbitmq 集群添加节点)
[四、搭建 rabbitmq 的镜像高可用模式集群](#四、搭建 rabbitmq 的镜像高可用模式集群)
|------------|-----------------|
| 主机名 | IP地址 |
| rabbitmq01 | 192.168.159.129 |
| rabbitmq02 | 192.168.159.230 |
| rabbitmq03 | 192.168.159.239 |
一、安装部署
1. 配置和拷贝解析文件
cs
[root@rabbitmq01 ~]# vim /etc/hosts
[root@rabbitmq01 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.159.129 rabbitmq01
192.168.159.230 rabbitmq02
192.168.159.239 rabbitmq03
[root@rabbitmq01 ~]# scp /etc/hosts rabbitmq02:/etc/hosts
[root@rabbitmq01 ~]# scp /etc/hosts rabbitmq03:/etc/hosts
2. 配置官方YUM源
cs
[root@rabbitmq01 ~]# vim /etc/yum.repos.d/rabbitmq.repo
# In /etc/yum.repos.d/rabbitmq.repo
##
## Zero dependency Erlang
##
[rabbitmq_erlang]
name=rabbitmq_erlang
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_erlang-source]
name=rabbitmq_erlang-source
baseurl=https://packagecloud.io/rabbitmq/erlang/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/erlang/gpgkey
https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
##
## RabbitMQ server
##
[rabbitmq_server]
name=rabbitmq_server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
# PackageCloud's repository key and RabbitMQ package signing key
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[rabbitmq_server-source]
name=rabbitmq_server-source
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
3. 安装和启动
cs
[root@rabbitmq01 ~]# yum clean all
[root@rabbitmq01 ~]# yum install rabbitmq-server -y
# 设置启动并开机自启
[root@rabbitmq01 ~]# systemctl start rabbitmq-server.service
[root@rabbitmq01 ~]# systemctl enable rabbitmq-server.service
二、账号配置
cs
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
rabbitmqctl add_user user_monitoring passwd_monitor
rabbitmqctl set_user_tags user_monitoring monitoring
rabbitmqctl set_user_tags user_monitoring management
rabbitmqctl list_users
rabbitmq-plugins enable rabbitmq_management
systemctl restart rabbitmq-server
浏览器访问:

可选:新建用户并配置权限【部署集群过程中不是必须的 】
cs
[root@rabbitmq01 ~]# rabbitmqctl add_user superrd superrd
Adding user "superrd" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rabbitmqctl help set_permissions' to learn more.
[root@rabbitmq01 ~]# rabbitmqctl set_permissions -p / admin '.*' '.*' '.*'
Setting permissions for user "admin" in vhost "/" ...
[root@rabbitmq01 ~]# rabbitmqctl set_permissions -p / superrd ".*" ".*" ".*"
Setting permissions for user "superrd" in vhost "/" ...
[root@rabbitmq01 ~]# rabbitmqctl list_user_permissions admin
Listing permissions for user "admin" ...
vhost configure write read
/ .* .* .*
[root@rabbitmq01 ~]# rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user configure write read
admin .* .* .*
guest .* .* .*
superrd .* .* .*
三、搭建 rabbitmq 的一般模式集群
1. 统一 erlang.cookie 文件中 cookie 值
cs
[root@rabbitmq01 ~]# chmod 600 /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq01 ~]# scp /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq01 ~]# scp /var/lib/rabbitmq/.erlang.cookie
# 查看服务器单节点状态
[root@rabbitmq01 ~]# rabbitmqctl status
# 查看集群状态
[root@rabbitmq01 ~]# rabbitmqctl cluster_status

2. Rabbitmq 集群添加节点
rabbitmq01重启,rabbitmq02,rabbitmq03执行以下服务
cs
# rabbitmq01上重启rabbitmq
[root@rabbitmq01 ~]# systemctl restart rabbitmq-server.service
# rabbitmq02和rabbitmq03操作一致,以rabbitmq02为例
[root@rabbitmq02 ~]# chmod 600 /var/lib/rabbitmq/.erlang.cookie
[root@rabbitmq02 ~]# systemctl restart rabbitmq-server.service
[root@rabbitmq02 ~]# rabbitmqctl stop_app
[root@rabbitmq02 ~]# rabbitmqctl join_cluster --ram rabbit@rabbitmq01
[root@rabbitmq02 ~]# rabbitmqctl start_app
[root@rabbitmq02 ~]# rabbitmq-plugins enable rabbitmq_management
# 如果上面的操作有误:执行 rabbitmqctl reset

四、搭建 rabbitmq 的镜像高可用模式集群
在一般模式集群基础上继续:
root@rabbitmq01 \~\]# rabbitmqctl set_policy ha-all "\^" '{"ha-mode":"all"}'
