一、环境准备
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 root@rslave1:/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 rabbit@master1
注:rabbit@master1是master1服务器上的rabbitmq节点名称
ram是以内存模式(还有disk模式,rabbitmq集群至少要保证有一个disk模式,可以都是disk模式)
3).启动应用,然后查看状态:
rabbitmqctl start_app
rabbitmqctl cluster_status
三、可能会出现的问题:
注:1).检测防火墙是否关闭
2).hosts文件是否配置正确