当前位置: 首页 > news >正文

rabbitmq镜像集群搭建

用到的ip地址

ip地址端口
192.168.101.65(主)15672
192.168.101.7515672
192.168.101.8515672

安装erlang和rabbitmq

安装

安装三个包
yum install esl-erlang_23.0-1_centos_7_amd64.rpm -y
yum install esl-erlang-compat-18.1-1.noarch.rpm -y
rpm -ivh rabbitmq-server-3.8.9-1.el7.noarch.rpm

启动rabbitmq和web插件

rabbitmq启动失败

[root@rabbitmq01 rabbitmq]# journalctl -xe
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: {{shutdown,
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: 14:02:03.632 [error]                    {failed_to_start_child,auth,
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: 14:02:03.632 [error]                        {"Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces",
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: {failed_to_start_child,auth,
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: {"Error when reading /var/lib/rabbitmq/.erlang.cookie: eacces",
8月 17 14:02:03 rabbitmq01 rabbitmq-server[27206]: [{auth,init_cookie,0,[{file,"auth.erl"},{line,290}]},

rabbitmq没有读取.erlang.cookie的权限,修改权限所有者

chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

配置镜像集群

修改映射文件

vi /etc/hosts

添加

192.168.101.65 rabbitmq01
192.168.101.75 rabbitmq02
192.168.101.85 rabbitmq03

重启网络服务

service network restart

修改主机名(不要在集群启动后再去修改,会让集群节点名称是根据主机名来的,中途改掉会报错)

hostnamectl set-hostname new_hostname(rabbitmq01/0/03)

同步 rabbitmq的cookie 文件.erlang.cookie (隐藏文件,使用 ls -all 显示)

scp /var/lib/rabbitmq/.erlang.cookie 192.168.101.75:/var/lib/rabbitmq
scp /var/lib/rabbitmq/.erlang.cookie 192.168.101.85:/var/lib/rabbitmq

75和85重启rabbitmq-server

systemctl restart rabbitmq-server

75和85加入集群

rabbitmqctl stop_app
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app

在这里插入图片描述
在这里插入图片描述

如果中途在主节点删过从节点,但是从节点没有重置,又再次想加入主节点,会报下面的错

[root@rabbitlocalhost miaoruntu]# rabbitmqctl join_cluster rabbit@rabbitmq01
Clustering node rabbit@rabbitlocalhost with rabbit@rabbitmq01
Error:
{:inconsistent_cluster, 'Node rabbit@rabbitmq01 thinks it's clustered with node rabbit@rabbitlocalhost, but rabbit@rabbitlocalhost disagrees'}

在从节点重置,再重新加入主节点

rabbitmqctl stop_app
rabbitmqctl reset
rabbitmqctl join_cluster rabbit@rabbitmq01
rabbitmqctl start_app

添加用户

rabbitmqctl add_user supeizhi 123
rabbitmqctl set_user_tags supeizhi administrator
rabbitmqctl set_permissions -p "/" supeizhi ".*" ".*" ".*"

设置镜像策略
pattern:“^queue_” 表示对队列名称以“queue_”开头的所有队列镜像,而"^"表示匹配所有的队列
definition:镜像定义,包括三个部分ha-mode, ha-params, ha-sync-mode
ha-mode:高可用模式,有效值为 all/exactly/nodes,策略模式为 all(复制到所有节点,包含新增节点)

在这里插入图片描述

创建队列
在这里插入图片描述

点击testQueue发送消息
在这里插入图片描述

后面蓝色的+2表示有两个消息节点,total1表示消息发送成功
在这里插入图片描述

将节点01停掉

rabbitmqctl stop_app

后面蓝色变成+1没有了
在这里插入图片描述
将节点03停掉,后面没有从节点了

在这里插入图片描述

在这里插入图片描述

启动01和03节点(鼠标过去会显示节点未同步)
在这里插入图片描述

同步队列

rabbitmqctl sync_queue testQueue

在这里插入图片描述
在这里插入图片描述

变回蓝色
在这里插入图片描述

http://www.lryc.cn/news/426852.html

相关文章:

  • 《c++并发编程实战》 笔记
  • 57qi5rW35LqRZUhS pc.mob SQL注入漏洞复现
  • 微信小程序--27(自定义组件4)
  • Linux | Linux进程万字全解:内核原理、进程状态转换、优先级调度策略与环境变量
  • VBA技术资料MF184:图片导入Word添加说明文字设置格式
  • 在函数设计中应用单一职责原则:函数分解与职责分离
  • 多线程锁机制面试
  • 《SQL 中计算地理坐标两点间距离的魔法》
  • 微服务可用性设计
  • 【扒代码】dave readme文档翻译
  • c语言---文件
  • Windows系统下Go安装与使用
  • day24-测试之接口测试基础
  • TSN 交换机
  • 针对thinkphp站点的漏洞挖掘和经验分享
  • MySQL数据库入门,pycharm连接数据库—详细讲解
  • .bat文件快速运行vue项目
  • 数据结构(邓俊辉)学习笔记】优先级队列 07——堆排序
  • npm install pnpm -g 报错的解决方法
  • 集师知识付费小程序开发
  • 前端开发提效工具——用户自定义代码片段
  • docker容器安全加固参考建议——筑梦之路
  • 基于 Appium 的 App 爬取实战
  • nvm与node安装
  • 【电子通识】什么是MSL湿敏等级
  • 【ARM 芯片 安全与攻击 5.4 -- Meltdown 攻击与防御介绍】
  • Django 后端架构开发:分页器到中间件开发
  • 亲测解决The client socket has failed to connect to
  • Intel ACRN 安装WIN10 VM
  • 贷齐乐案例