CentOs安装Rabbitmq集群

一. 下载

因为rabbitmq安装需要erlang环境,对于版本环境有对应要求,为节省不必要时间,这里直接分享一套在用版本

链接:https://pan.baidu.com/s/1sQjpbiFIFhnSpa0_uCP53A 
提取码:AA56 


文件:rabbitmq3.7.rar
内含
rabbitMq版本:3.7.17
erlang版本:21.0.2
socat版本: 1.7.3.2
openssl版本: 1.0.2k-16.el7

如果想安装最新版本可以参考这篇博文:RabbitMQ介绍及linux下集群部署_咖啡那么浓的博客-CSDN博客a

二. 安装

集群服务器配置如下,本文采用3台服务器搭建集群环境

node1192.168.177.171
node2192.168.177.172
node3192.168.177.173

以下每台操作都一样:可批量同时执行

1. 修改hosts文件

vim /etc/hosts

写入如下内容(按自身服务环境配置)

 

2. 解压Rabbitmq.zip

unzip RabbitMQ.zip && rm -rf RabbitMQ.zip && cd RabbitMQ

注:如系统报unzip不存在,执行

yum install unzip

3.  安装全部应用

cd RabbitMQ
yum -y install ./*

4. 修改配置

安装完成后

#拷贝配置文件,在此文件内进行优化
cp /usr/share/doc/rabbitmq-server-3.7.17/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

5. 设置日志存储目录

mkdir -p /data/rabbitmq/{mnesia,log}

chown -R rabbitmq:rabbitmq /data/rabbitmq/{mnesia,log}

创建或新增环境参数配置文件,可在此文件内添加自定义的数据及日志存储目录

vim /etc/rabbitmq/rabbitmq-env.conf

加入下列几句话:

RABBITMQ_MNESIA_BASE=/data/rabbitmq/mnesia

RABBITMQ_LOG_BASE=/data/rabbitmq/log

6. 启动RabbitMQ

systemctl start rabbitmq-server

systemctl enable rabbitmq-server

rabbitmq-plugins enable rabbitmq_management

7. 创建管理员用户

rabbitmqctl add_user admin admin

rabbitmqctl set_user_tags admin administrator

rabbitmqctl set_permissions -p "/" admin ".*"  ".*"  ".*"

即到此,安装成功,通过ip+ 端口(15672)访问

注意需要开放服务器访问端口(如云服务器则还要配置安全组)

#开启防火墙
systemctl start firewalld
 
# 开放2181端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
# 开放3888端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
 
# 重启防火墙,使之生效
firewall-cmd --reload

访问地址:http://192.168.177.171:15672/

三.集群配置

注:从下开始就是重要部分

首先我们假设node1为master节点,node2,node3为slave节点

关闭node2,node3节点

# node2,node3执行
systemctl stop rabbitmq-server

# 判断是否已经关闭,没有则KILL
ps -ef|grep rabbitmq

1. 复制erlang.cookie到其他服务器的mq目录下(node1服务器操作)

# 查看erlang.cookie的位置并分发到集群中各个节点(根据现场环境实际路径查找)

cat /data/rabbitmq/log/rabbit@`hostname`.log | grep home | uniq

# 返回:home dir       : /var/lib/rabbitmq

ls -a /var/lib/rabbitmq/
# 返回: .  ..  .erlang.cookie  mnesia

2.  将主节点的erlang.cookie分发到各个节点(node1服务器操作)

scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/

# 注:中途需要输入服务器密码

scp /var/lib/rabbitmq/.erlang.cookie root@node3:/var/lib/rabbitmq/

3. slave节点服务器重新启动MQ(node2,node3服务器操作)

# 重启rabbitmq-server,使新的erlang.cookie生效
systemctl restart rabbitmq-server

4. slave节点加入到集群环境中(node2,node3服务器操作)

# 将节点加入集群
rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@node1
rabbitmqctl start_app

成功后,返回主节点服务器,查看是否显示以下:

 

5.  设置镜像策略(主节点node1服务器操作)

rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

6. 查看集群(主节点node1服务器操作)

rabbitmqctl cluster_status

四:Rabbitmq命令

命令集:
启动命令: systemctl start rabbitmq-server
停止命令: systemctl stop rabbitmq-server
重启命令: systemctl restart rabbitmq-server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值