RabbitMQ镜像集群搭建
RabbitMQ 官网 https://www.rabbitmq.com/
小编使用的系统环境是CentOS7.4
系统 | IP | hostname |
---|---|---|
CentOS7.4 | 1.1.1.1 | hostname01 |
CentOS7.4 | 1.1.1.2 | hostname02 |
下载
格外强调,注意RabbitMQ与erlang的版本是否匹配
查看匹配网址 https://www.rabbitmq.com/which-erlang.html
-
erlang22.3
-
rabbitmq3.8.3
安装
安装erlang
解压erlang
tar -zxvf otp_src_22.3.tar.gz
准备erlang编译工具
yum install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel
创建文件夹
mkdir -p /usr/local/erlang
编译
cd otp_src_22.3
./configure --prefix=/usr/local/erlang --without-javac
make && make install
环境变量配置
vi /etc/profile
配置
export ERLANG_HOME=/usr/local/erlang
export PATH=${ERLANG_HOME}/bin:${PATH}
刷新配置
source /etc/profile
创建软连
ln -s /usr/local/erlang/bin/erl /usr/local/bin/erl
测试
erl
安装 socat
yum install -y socat
安装rabbitmq
rpm -ivh --nodeps rabbitmq-server-3.8.3-1.el7.noarch.rpm
修改配置
vi /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin/rabbit.app
修改 loopback_users 中的 [<<"guest">>], 只保留 []
heartbeat 为 5
启用web管理页面
rabbitmq-plugins enable rabbitmq_management
启动rabbitmq
启动
rabbitmq-server start &
启动内容检查
rabbitmq-plugins list
开始集群
RabbitMQ事基于erlang的,所以部署RabbitMQ集群,首先要处理erlang的cookie。
重启主节点
ps -ef | grep rabbitmq
kill -9 ?
cd /usr/lib/rabbitmq/bin
# 后台启动从机
./rabbitmq-server -deched
这一步会生成/root目录下的 .erlang.cookie,这个涉及到rabbitmq的启动方式。
配置从机的cookie
首先在主节点查询cookie,一般cookie会存在两个位置
第一个位置在
ll -la /root
第二个位置在
ll -la /var/lib/rabbitmq/
为了避免错误,将上面两个cookie分别复制到从机上的对应位置。
注意点:复制完成后,将文件权限改为600
chmod 600 .erlang.cookie
配置hosts
分别在主机、从机上配置hosts
查询hostname
cat /etc/hostname
配置hosts
vi /etc/hosts
增加如下配置
# 主ip + 主hostname
1.1.1.1 hostname01
# 从ip + 从hostname
1.1.1.2 hostname02
配置集群
这一步仅仅是在从机上操作,主机启动RabbitMQ即可。
cd /usr/lib/rabbitmq/bin
# 后台启动从机
./rabbitmq-server -deched
./rabbitmqctl stop_app
# 这里的hostname01是指主机的hostname
./rabbitmqctl join_cluster rabbit@hostname01
./rabbitmqctl start_app
至此,RabbitMQ集群配置已完成。
验证
在图形化界面即可看到集群结果
学习这件事,请不要停下来。