linux基于centos7.5搭建rabbitmq集群

一、环境准备

1.erlang23.0.2在线安装,这种方式是下载最新的(查看Erlang与RabbitMQ对应版本 RabbitMQ Erlang Version Requirements):

1).先下载rpm包:

wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

2).解压包:

rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

注:有可能会出现缺少依赖的问题,直接下载yum -y install epel-release

3).安装erlang:

yum install erlang

4).查看是否安装成功:

erl

2.rabbitmq3.8.5安装:

1).百度网盘链接:https://pan.baidu.com/s/1JUsFA9ZRlIzpL2blRjuMaQ,提取码:ijxe(大家要是有积分,支持一下,去我的下载,可以下载,只要三积分咯)

2.).新建rabbitmq目录,然后进入rabbitmq目录:

mkdir rabbitmq

cd /usr/local/rabbitmq/

3).解压:

yum install socat
rpm -ivh  rabbitmq-server-3.8.5-1.el7.noarch.rpm

注:解压rabbitmq的时候,先要安装socat依赖(如果提示erlang>=21.3等信息,请卸载重新安装匹配的版本)

4).查找server的安装目录

find / -name rabbit-server

然后找到usr/sbin/rabbit-server,cd /sbin

5).启动rabbitmq,并安装管理插件:

./rabbitmq-server -detached # 启动服务命令

./rabbitmqctl stop # 停止服务命令

./rabbitmq-plugins enable rabbitmq_management # 安装管理插件

./rabbitmq-server -detached # 重新启动服务命令

./rabbitmqctl status # 查看服务运行状态

wget http://你的ip:15672 # 验证是否成功安装

注:如果远程访问(浏览器访问),访问不了,请关闭防火墙

6).创建用户:

./rabbitmqctl add_user admin admin 添加用户名与密码

./rabbitmqctl set_user_tags admin administrator 设置用户标签

./rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"  设置权限

./rabbitmqctl list_users 查询所有用户

二、rabbitmq集群配置:

按照如上配置好三台,或者两台服务器环境

1.设置主机名:

192.168.137.158服务器:

hostnamectl set-hostname master1

192.168.137.155服务器:

hostnamectl set-hostname slave1

2.设置服务器hosts域名,我的如下:

192.168.137.158 master1
192.168.137.155 slave1

3.启动服务:

systemctl start rabbitmq-server.service

4.查看状态:

rabbitmqctl cluster_status

5.停止所有服务器服务:

systemctl stop rabbitmq-server.service

6.master1的cookie值复制slave1服务器(推荐通过第一、二种方式,简单粗暴。第三种发方式容易出错,如果你对域名配置不是很了解的话。)

注:1.直接复制值过去,修改slave1的cookie值(需要修改文件权限,cookie值改好后,注意需要把权限改回来。否知启动会报错)

      2.直接通过winscp连接master1与slave1,把master1的cookie文件覆盖slave1的文件

      3.命令修改scp /var/lib/rabbitmq/.erlang.cookie [email protected]:/var/lib/rabbitmq

      

7.查询master1与slave1的cookie值是否相同

 more /var/lib/rabbitmq/.erlang.cookie

8.启动master1与slave1服务:

systemctl start rabbitmq-server.service

9.一下操作只在slave1服务器上:

1).关闭rabbitmq 应用:

rabbitmqctl stop_app

2).把slave1作为内存节点与master1磁盘节点连接起来:

rabbitmqctl join_cluster --ram [email protected]

注:[email protected]是master1服务器上的rabbitmq节点名称

      ram是以内存模式(还有disk模式,rabbitmq集群至少要保证有一个disk模式,可以都是disk模式)

3).启动应用,然后查看状态:

rabbitmqctl start_app

rabbitmqctl cluster_status

三、可能会出现的问题:

1.挂载的时候有可能会出现如下问题:

注:1).检测防火墙是否关闭

        2).hosts文件是否配置正确