本文介绍公司一直在用的 rabbitmq 集群安装部署过程,版本不算太新,但一直稳定运行,对其他版本安装也有一定的参考价值,建议收藏备用。
简介
RabbitMQ 是一个开源的遵循 AMQP(Advanced Message Queuing Protocol) 协议实现的基于 Erlang 语言编写,支持多种客户端(语言),用于在分布式系统中存储消息,转发消息,具有高可用高可扩展性,易用性等特征。
AMQP :高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP 的主要特征是面向消息、队列、路由(包括点对点和发布 / 订阅)、可靠性、安全。
总之,就一句话:RabbitMQ 是一个消息队列中间件。
安装
rabbitmq依赖erlang环境,类似java依赖jvm一样。
资源准备
机器列表
-
10.100.16.201,centos7
-
10.100.16.202,centos7
-
10.100.16.203,centos7
软件版本,rabbitmq 对 erlang 版本有一定要求,建议直接用我提供的版本练手
-
rabbitmq,3.8.14
-
erlang,23.2.7
下载地址 因为我这里只实践了 centos 这里有 rpm 包
https://github.com/rabbitmq/rabbitmq-server/releases/tag/v3.8.14
https://github.com/rabbitmq/erlang-rpm/releases/tag/v23.2.7
安装步骤
安装基础软件包
# centos 扩展软件库,
yum -y install epel-release
# 高效的数据传输库,rabbitmq 需要
yum -y install socat
下载 rpm 包至本地然后直接安装
-
erlang-23.2.7-1.el7.x86_64.rpm
-
rabbitmq-server-3.8.14-1.el7.noarch.rpm
# 下载至本地安装
# 创建一个临时目录存放 rpm 包,安装后可以删除
mkdir -p /data/rabbitmq
cd /data/rabbitmq
wget https://github.com/rabbitmq/erlang-rpm/releases/download/v23.2.7/erlang-23.2.7-1.el7.x86_64.rpm
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.14/rabbitmq-server-3.8.14-1.el7.noarch.rpm
yum install -y erlang-23.2.7-1.el7.x86_64.rpm
yum install -y rabbitmq-server-3.8.14-1.el7.noarch.rpm
在 centos 上 rabbitmq 采用 systemd 管理启停比较方便
# 启动
systemctl start rabbitmq-server
# 查看状态
systemctl status rabbitmq-server
# 停止
systemctl stop rabbitmq-server
# 开机自启
systemctl enable rabbitmq-server
启动 rabbitmq 开启 管理控制台 插件(三台机器均需开启此插件)
rabbitmq-plugins enable rabbitmq_managementrabbitmq
启动后需要开启特定的端口放行 或者 关闭防火墙(懒人必备,慎用)
systemctl stop firewalld
systemctl disable firewalld
集群配置
3 台机器需要组成一个集群需要共享同一份 erlang cookie, 内容随意,保证 3 台相同即可。
echo 'AZVOCZYZZBVFLBPTBXU' > /var/lib/rabbitmq/.erlang.cookie
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie
chmod 400 /var/lib/rabbitmq/.erlang.cookie
配置 3 台机器的 /etc/hosts, 默认启动会采用 hostname 作为节点标识,确保其能通过 hostname 相互访问
10.100.16.201&nb