Linux虚拟机搭建RabbitMQ集群-CSDN博客
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
普通集群模式意思就是在多台机器上启动多个 RabbitMQ 实例每台机器启动一个。创建的 queue只会放在一个 RabbitMQ 实例上但是每个实例都同步 queue 的元数据元数据可以认为是 queue 的一些配置信息通过元数据可以找到 queue 所在实例。消费的时候实际上如果连接到了另外一个实例那么那个实例会从 queue 所在实例上拉取数据过来。
1、服务器准备
host-01 192.168.49.9
host-02 192.168.49.10
host-03 192.168.49.11
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld
修改hostname
hostnamectl set-hostname host-01
修改三台服务器的hosts
vim /etc/hosts
添加
192.168.49.9 host-01
192.168.49.10 host-02
192.168.49.11 host-03
验证
修改宿主机hosts文件
验证
2、安装erlang环境
三台虚拟机都按照下面方式按装环境
erlang-23.3.4.10-1.el7.x86_64.rpm下载页面
安装
rpm -ivh erlang-23.3.4.10-1.el7.x86_64.rpm
验证
yum info erlang
3、安装RabbitMq
下载
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el7.noarch.rpm
下载完成后导入key
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
安装
rpm -ivh rabbitmq-server-3.8.0-1.el7.noarch.rpm
解决办法
yum install socat
启动RabbitMQ
# 启动rabbitmq
systemctl start rabbitmq-server
# 查看rabbitmq状态
systemctl status rabbitmq-server
#设置开机启动
systemctl enable rabbitmq-server
安装管理界面
rabbitmq-plugins enable rabbitmq_management
管理界面设置登录账号密码
RabbitMQ默认只有一个guest帐号guest帐号只能在RabbitMQ安装服务器上登录在其它服务器用guest登录提示User can only log in via localhost
。
#第一步添加 admin 用户并设置密码
rabbitmqctl add_user admin 123456
#第二步添加 admin 用户为administrator角色
rabbitmqctl set_user_tags admin administrator
#第三步设置 admin 用户的权限指定允许访问的vhost以及write/read
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#第四步查看vhost/允许哪些用户访问
rabbitmqctl list_permissions -p /
#第五步查看用户列表
rabbitmqctl list_users
分别访问三台虚拟机的RabbitMQ
http://host-01:15672/#/
http://host-02:15672/#/
http://host-03:15672/#/
4、 构建erlang集群
拷贝一台rabbitmq的erlang.cookie到另外一台被拷贝的视为master
scp /var/lib/rabbitmq/.erlang.cookie root@host-02:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie root@host-03:/var/lib/rabbitmq
重启节点
systemctl restart rabbitmq-server
从节点执行如下
#停止服务
rabbitmqctl stop_app
#重置服务
rabbitmqctl reset
#加入集群,$hostname为host-01的hostname
rabbitmqctl join_cluster rabbit@host-01
高可用镜像集群配置
三台服务器分别执行
rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |