一 实验环境

二 安装步骤

2.1 安装单实例RabbitMQ

可参考:安装rabbitmq 3.7.6_雅冰石的专栏-CSDN博客

2.2 修改两台服务器的/etc/hosts文件

添加:

192.168.144.204 pc1

192.168.144.208 pc2

2.3 拷贝节点一的.erlang.cookie文件到node-2节点

[root@pc1 ~]# scp /var/lib/rabbitmq/.erlang.cookie 192.168.144.208:/var/lib/rabbitmq/

[root@pc2 ~]# chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie

#重启节点2的rabbitmq

systemctl restart rabbitmq-server

2.4 将pc2与pc1组成集群

在第二个节点上执行:

[root@pc2 ~]# rabbitmqctl stop_app

Stopping rabbit application on node rabbit@pc2 ...

[root@pc2 ~]#  rabbitmqctl reset

Resetting node rabbit@pc2 ...

[root@pc2 ~]# rabbitmqctl join_cluster rabbit@pc1

Clustering node rabbit@pc2 with rabbit@pc1

[root@pc2 ~]# rabbitmqctl start_app

Starting node rabbit@pc2 ...

completed with 3 plugins.

[root@pc2 ~]# rabbitmqctl cluster_status

Cluster status of node rabbit@pc2 ...

[{nodes,[{disc,[rabbit@pc1,rabbit@pc2]}]},

{running_nodes,[rabbit@pc1,rabbit@pc2]},

{cluster_name,<<"rabbit@pc2">>},

{partitions,[]},

{alarms,[{rabbit@pc1,[]},{rabbit@pc2,[]}]}]

进管理界面查看节点:

三 验证rabbitmq集群

3.1 验证数据是否同步

3.1.1 验证虚拟主机

#在其中一个节点上创建虚拟主机,验证下在另一个节点上能否查看到虚拟主机

[root@pc2 ~]# rabbitmqctl add_vhost bb

Adding vhost "bb" ...

[root@pc1 opt]# rabbitmqctl list_vhosts

Listing vhosts ...

bb

/

说明数据能同步过来。

3.1.2 验证用户

#在其中一个节点上创建用户,并设置权限

rabbitmqctl add_user bb 123456

rabbitmqctl set_user_tags bb administrator

rabbitmqctl  set_permissions -p bb bb  '.*' '.*' '.*'

#在另一个节点上看到用户同步过来了

[root@pc2 ~]# rabbitmqctl  list_users

Listing users ...

bb [administrator]

admin [administrator]

guest [administrator]

3.1.2 验证队列

3.1.2.1 创建队列

#这里通过图形用户界面创建队列

登录其中一个节点的管理界面,创建一个队列:

#在另一个节点管理界面上能查到这个新建的队列:

3.1.2.2 设置镜像队列

如果不设置镜像队列,某个节点宕机后,该节点上的队列状态会变成down,会导致该队列不可用,影响业务,数据也可能会丢失,因此需要设置镜像队列。

down状态的队列示例:

#将/的所有队列设置为镜像队列,策略名称为ha-all。

[root@pc1 ~]# rabbitmqctl set_policy ha-all "^" '{"ha-mode":"all"}'

Setting policy "ha-all" for pattern "^" to "{"ha-mode":"all"}" with priority "0" for vhost "/" ...

如果不指定虚拟主机名称,默认是只给/设置了镜像队列,想要给某个虚拟主机设置镜像队列,这样做:

rabbitmqctl set_policy -p 虚拟主机名称 策略名称 "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

示例:

[root@pc2 ~]# rabbitmqctl set_policy -p bb bb-ha-all "^" '{"ha-mode":"all","ha-sync-mode":"automatic"}'

Setting policy "bb-ha-all" for pattern "^" to "{"ha-mode":"all","ha-sync-mode":"automatic"}" with priority "0" for vhost "bb" ...

该命令会自动将该虚拟主机上之前创建的队列及之后创建的队列都设置为镜像队列。

可以看到Node处有+1的标识:

3.2 验证rabbitmq集群高可用

宕掉其中一个节点,验证下之前在该节点上创建的虚拟主机是否仍然可用,队列状态是否是正常的(state为down表示不正常),等等。

--本篇文章参考了【消息队列】如何保证MQ的高可用?_hoaven的博客-CSDN博客

RabbitMQ双节点集群搭建相关推荐

  1. k8s双节点集群搭建详细教程

    K8S v1.13.0 集群搭建 环境 两台centos主机: Master:192.168.11.112 主机名:k8s-master Node:192.168.11.111 主机名:k8s-nod ...

  2. linux下,redis 3.2.1双节点集群安装部署

    为什么80%的码农都做不了架构师?>>>    一.环境准备 1.JDK环境准备,需卸载掉自带JDK (1)检查服务器是否自带jdk环境 [root@redis1 /]# rpm - ...

  3. RabbitMQ高可用集群搭建

    RabbitMQ高可用集群搭建 摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确 ...

  4. RabbitMQ 高可用集群搭建

    RabbitMQ 高可用集群搭建 1 集群简介 1.1 集群架构 ​ 当单台 RabbitMQ 服务器的处理消息的能力达到瓶颈时,此时可以通过 RabbitMQ 集群来进行扩展,从而达到提升吞吐量的目 ...

  5. flume多节点集群搭建

    概览 1.Flume流程简介 2.规划 3.配置 4.启动测试 5.注意 准备 操作系统:CentOS 7 搭建好hadoop集群 Flume版本:1.8.0 jdk版本:1.8.0_141 工具:X ...

  6. 【VMware vSAN 7.0】6.6 使用快速入门功能配置延伸集群或双节点集群—我们有软硬件解决方案

    目录 1. vSAN简介 1.1 vSAN 概念 1.1.1 vSAN 的特性 1.2 vSAN术语和定义 1.3 vSAN 和传统存储 1.4 构建 vSAN 群集 1.5 vSAN 部署选项 1. ...

  7. 【VMware vSAN 7.0】6.13 将双节点集群分配给共享见证主机—我们有软硬件解决方案

    目录 1. vSAN简介 1.1 vSAN 概念 1.1.1 vSAN 的特性 1.2 vSAN术语和定义 1.3 vSAN 和传统存储 1.4 构建 vSAN 群集 1.5 vSAN 部署选项 1. ...

  8. Redis 多机多节点集群搭建方案(5.0版本)

    >搭建环境: a)redis的安装包,redis-5.0.8.tar.gz b)gcc安装包gcc_rpm.tar.gz c)VM10 d)CentOS镜像文件 >搭建步骤: 1.准备工作 ...

  9. RabbitMQ 高可用集群搭建及电商平台使用经验总结

    面向EDA(事件驱动架构)的方式来设计你的消息 AMQP routing key的设计 RabbitMQ cluster搭建 Mirror queue policy设置 两个不错的RabbitMQ p ...

最新文章

  1. c语言模拟考试题目,10道C语言笔试模拟题
  2. 贪心算法-跳跃游戏——b
  3. 纪中2016.8.13比赛不明总结
  4. jsp动作之 getProperty
  5. Python使用@property方法改变方法为参数
  6. 菜鸟、普通、老鸟程序猿如何写奇数判断?--位操作符妙用
  7. 《分析服务从入门到精通读书笔记》第四章、创建父子维度(7)
  8. 95-35-010-Topic-Topic的新建 源码解析
  9. 获取论坛cookie_注意:这是你成为Cookie时尚社区OG的最后机会!
  10. SVN ---文件加锁,执行clean up命令
  11. Ubuntu16.04装机2:安装CUDA10.2+cuDNN7.6.5
  12. IDEA连接Spark集群执行Scala程序
  13. IO(一)----字节流
  14. 遗传算法GA原理详解及实例应用 附Python代码
  15. iMeta | FSCapture报告录屏和视频剪辑(视频教程)
  16. PDF文件编辑密码解除
  17. Potplayer svp 播放60帧视频
  18. 学习Java必看的Java书籍(本本经典实用)
  19. KEIL5打开KEIL4工程的方法
  20. 手机拍摄全景图并且使用Threejs实现VR全景,超简单WebVR

热门文章

  1. 超市收银系统c语言程序用c 的,C语言 超市收银系统
  2. oracle 连接查询(内、外连接、自连接、子查询)
  3. 六、系统架构 - 高可用架构设计
  4. Python爬虫报错HTTPSConnectionPool(host=‘heat.qq.com‘, port=443)处理
  5. 基于RFID技术的智能门禁系统设计(控制部分)
  6. pytorch 复现 FCN模型详细代码教程
  7. stm32笔记05——stm32引脚功能分布
  8. 华为云服务器默认密码怎么修改,如何修改云服务器登陆密码
  9. 二叉树——二叉树的深度
  10. ETCD教程(一) 通过docker安装etcd集群