服务器安装三节点RabbitMQ集群

首先准备三台服务器:我这里三个IP分别是99/106/119
对应的hostname在之前安装KubeSphere的时候已经改好了
为master1、master2、master3

有些说免密登录的,没必要吧
只要三台机器互相可以ping通,关闭防火墙、SELinux,就行


RabbitMQ 基于Erlang实现的,所以在安装rabbitmq之前需要先安装erlang,
安装的时候需要注意erlang的版本号与rabbitmq的版本号。 
安装注意:erlang版本号需要兼顾rabbitmq版本。
版本不对,是无法启动rabbitmq的。 
官网版本对应表:http://www.rabbitmq.com/which-erlang.html


【1】首先在三台机器上分别安装RabbitMQ

可以先查看一下当前配置的源支持的软件版本

yum list erlang
erlang-R16B-03.18.el7.x86_64
yum list rabbitmq-server
rabbitmq-server-3.3.5-34.el7.noarch
# 上面的版本比较老了,不过能用,而且这两个版本是满足依赖的

也可以参考这一篇安装较新的版本


确认好依赖的版本关系后安装

yum install erlang
yum install rabbitmq-server
# 这里不指定版本就会安装上面list出来的版本
# 可以yum upgrade一下,不过我这里试了也没用,在线安装的话还是最高支持上面的那个版本

# 加入是这两个版本的话,应该就没有问题,其他版本可能还会需要安装一个依赖,socat

# 然后就是设置三连
systemctl enable rabbitmq-server
systemctl start rabbitmq-server
systemctl status rabbitmq-server

# 查看插件
Rabbitmq-plugins list

到现在,还没有启动web服务呢,可以看到所有插件都是空[  ] 

启动web插件

rabbitmq-plugins enable rabbitmq_management

可以看到上面列表有几个变成[ e ] 了,我前些天第一次安装的时候还以为是错误的意思呢

应该是enable的意思,使能的意思,开启的意思

这时候登录web端口还是进不去,要重启一下服务

systemctl restart rabbitmq-server.service

这时候三个节点应该都可以登进web界面了

下面就是选择一个主节点,然后把另两个节点加入,组成集群

在这之前,还要先同步一下三个节点的cookie


【2】同步cookie

首先说一下cookie,RabbitMQ是基于Erlang的,
Erlang Cookie是保证不同节点可以相互通信的密钥,
要保证集群中的不同节点相互通信必须共享相同的Erlang Cookie

# cookie目录,是个隐藏文件
/var/lib/rabbitmq/.erlang.cookie

# 我们要把master1中的cookie同步到master2、3
# scp可以,不过直接复制粘贴更简单,因为cookie文件内容就是几十个字符串

# 先把2、3服务停掉,不用管1
systemctl restart rabbitmq-server.service

# 把2、3的.erlang.cookie文件暂时修改为777
# 然后用1的cookie替换,替换后及时把权限修改回来,原权限是400
# 如果不还原权限,启动mq时会报错,直接启动不起来。

【3】加入集群

因为rabbitmq-server启动时,会一起启动节点和应用,它预先设置RabbitMQ应用为standalone模式。
要将一个节点加入到现有的集群中,你需要停止这个应用并将节点设置为原始状态,然后就为加入集群准备好了。
如果使用systemctl stop rabbitmq-server,应用和节点都将被关闭。所以使用rabbitmqctl stop_app仅仅关闭应用。

【2】中把2、3的服务停掉了,现在开启

# 开启服务
systemctl start rabbitmq-server

# 停掉应用,不是停服务
rabbitmqctl stop_app

# 加入集群
rabbitmqctl join_cluster rabbit@master1

############################################
# 默认rabbitmq启动后是磁盘节点,
# 如果要使2、3都是内存节点,加上--ram参数即可。
# rabbitmqctl join_cluster --ram rabbit@master1
# 如果想要更改节点类型,可以使用命令

rabbitmqctl change_cluster_node_type disc(ram)
# 前提是必须停掉rabbit应用

这时节点2、3就加进来了

然后再把2、3的应用打开 

rabbitmqctl start_app


这样,普通的集群模式就搭建好了,下一篇再在此基础上,配置为镜像集群模式

 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值