消息队列集群——RabbitMQ

目录

一、安装部署

[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 的一般模式集群

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"}'

相关推荐
AI日报派送佬10 小时前
2026年11月02日 AI 行业日报|商汤开源 Loop-9B、Pika 发布 H3 Flex 音视频模型、Meta× 傅利叶推出人形机器人 Max
人工智能·微软·开源·音视频·openai·1024程序员节·ai日报
avi911111 小时前
【AI教人】UnityEditor扩展Spine动画,Spine骨骼,预览Preview一切
spine·骨骼动画·1024程序员节·editor扩展·spine动画·spine骨骼
海棠Flower未眠11 小时前
下单请求处理流程:商品维度分布式锁与 Redis 预扣库存
redis·分布式·junit
开开心心就好11 小时前
网页图片批量下载工具,输入链接就保存
服务器·算法·leetcode·支持向量机·pdf·ocr·1024程序员节
罗四强12 小时前
第10篇:打包上架:签名、打包 HAP、发布到华为应用市场
分布式·操作系统·harmonyos·arkts·鸿蒙系统
秋饼12 小时前
Redis 全面解析:从数据结构到主从/哨兵/集群、分布式锁与面试高频考点,代码到原理一次讲透
数据库·redis·分布式·面试·后端开发
二月夜12 小时前
Redis 高频面试题全解:缓存三大问题、大 key 治理与分布式锁之争(2026 招聘 JD 真题复盘)
redis·分布式·后端·缓存
后台模板学习13 小时前
Kafka 与 RabbitMQ 在用户认证与权限管理场景
kafka·rabbitmq·linq
樱花落木兰13 小时前
Redis 消息队列的可靠性演进:从 List、Pub/Sub 到 Stream 消费者组,以及 8.x 版本改变了什么
java·开发语言·经验分享·redis·分布式·python·软件工程
真上帝的左手15 小时前
12. 消息队列-Kafka进阶
分布式·中间件·kafka