一、简介
本文示例运行环境:
- 操作系统:CentOS Linux release 7
- RabbitMQ Server : 3.10.0
- Erlang : 24.3.4
二、更换 Centos yum 源
CentOS Linux 7 EOL: 2024-06-30
-
备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
-
下载新的阿里镜像源 CentOS-Base.repo 到 /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
或者
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
-
运行 yum makecache 生成缓存
三、安装依赖包
yum install -y unixODBC
四、下载安装 erlang 和 rabbitmq-server
wget 'https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_24.3.4.1-1~centos~7_amd64.rpm'
# 或者
# wget 'https://inapp.oss-cn-qingdao.aliyuncs.com/static/esl-erlang_24.3.4.1-1%7Ecentos%7E7_amd64.rpm'
rpm -Uvh esl-erlang_24.3.4.1-1~centos~7_amd64.rpm
wget 'https://inapp.oss-cn-qingdao.aliyuncs.com/static/rabbitmq-server-3.10.0-1.el7.noarch.rpm'
rpm -Uvh rabbitmq-server-3.10.0-1.el7.noarch.rpm
五、启动 RabbitMQ , 并设置开机自启
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
六、使用指南
# 启用 web 管理页面,端口默认为 15672
rabbitmq-plugins enable rabbitmq_management
# 添加账号
rabbitmqctl add_user user1 password
# 设置账号为管理员,并添加权限
rabbitmqctl set_user_tags user1 administrator
rabbitmqctl set_user_tags user1 management
rabbitmqctl set_permissions user1 '.*' '.*' '.*'
# 添加 vhost
rabbitmqctl add_vhost /vhost1
# 为 user1 用户添加 vhost 的权限
rabbitmqctl set_permissions -p /vhost1 user1 ".*" ".*" ".*"
七、安装插件
安装 延迟消息插件
# 查看插件路径
rabbitmq-plugins directories -s
# 下载插件
wget 'https://inapp.oss-cn-qingdao.aliyuncs.com/static/rabbitmq_delayed_message_exchange-3.10.0.ez'
mv rabbitmq_delayed_message_exchange-3.10.0.ez /usr/lib/rabbitmq/lib/rabbitmq_server-3.10.0/plugins
# 启用插件
rabbitmq-plugins enable rabbitmq_delayed_message_exchange
八、配置 RabbitMQ 集群模式
-
设置好主机名和 hosts
# Server n1 hostnamectl set-hostname n1.srv.world echo -ne '172.16.0.101 n1.srv.world n1\n172.16.0.102 n2.srv.world n2' >> /etc/hosts # Server n2 hostnamectl set-hostname n2.srv.world echo -ne '172.16.0.101 n1.srv.world n1\n172.16.0.102 n2.srv.world n2' >> /etc/hosts
-
同步 .erlang.cookie 文件,将 Server n1 机器的 /var/lib/rabbitmq/.erlang.cookie 文件内容复制到 Server n2
-
将 Server n2 加入的 Server n1 集群
# 在 Server n2 上执行 rabbitmqctl stop_app rabbitmqctl reset rabbitmqctl join_cluster rabbit@n1 rabbitmqctl start_app
-
设置镜像队列
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
-
官方集群搭建文档
张贴您的评论