rabbitmq集群搭建


按照上一篇已经搭好两个rabbitmq单实例,下面把两台单实例组成集群

RabbitMQ集群是一个或几个节点的逻辑分组,每个节点共享用户,虚拟主机,队列,交换,绑定,运行时参数和其他分布式状态

bg:

两台实验机

关闭防火墙和selinux

node1 172.16.1.130 mycentos7

node2 172.16.1.79 wikbackup79

 

标识符

节点名称,集群中的唯一标识符,两部分组成,例如rabbit@mycentos7,rabbit默认的,mycentos7主机名,并且要能解析

分别在两台pc编辑hosts

Erlang Cookie

CLI工具如何对节点(以及彼此之间的节点)进行身份验证:Erlang Cookie

所以集群要保证/var/lib/rabbitmq/.erlang.cookie(默认)一致,把130的复制到79

 

开始创建集群

假设两个节点都已经启动

把node1和node2加入集群,在node2上操作

停止node2上的rabbitmq

$ rabbitmqctl stop_app

 

重置node2rabbitmq

$ rabbitmqctl reset

 

加入node1集群

$ rabbitmqctl join_cluster rabbit@mycentos7

 

启动node2上的rabbitmq

$ rabbitmqctl start_app

 

在任意节点查看集群

$ rabbitmqctl cluster_status

按照以上步骤可以随时添加新节点

 

有时需要删除节点,步骤很简单,两种方式

主动方式,在被删除节点操作

先停rabbitmq

$ rabbitmqctl stop_app

 

重置reset

$ rabbitmqctl reset

 

启动rabbitmq

$ rabbitmqctl start_app

此时就是一个干净的单实例rabbitmq

 

 被动方式,远程操作,用于节点损坏无法响应

在活动节点,例如node1执行,前提是node2已经停止了rabbitmq(rabbitmqctl stop_app)

$  rabbitmqctl forget_cluster_node rabbit@wikbackup79

查看一下cluster status,发现去掉了node2

$ rabbitmqctl cluster_status

 

具有RAM节点的集群

RAM节点仅将元数据保留在内存中。由于RAM节点不必像磁盘节点那样多地写入磁盘,因此它们可以表现得更好。但是,请注意,由于持久队列数据始终存储在磁盘上,因此性能提高将仅影响资源管理(例如,添加/删除队列,交换或虚拟主机),而不会影响发布或消耗速度。

RAM节点是高级用例;在设置第一个集群时,您不应该使用它们。您应该有足够的磁盘节点来满足您的冗余要求,然后如有必要,添加其他RAM节点以进行扩展。

仅包含RAM节点的群集将非常易变。如果群集停止,您将无法再次启动它,并且 将丢失所有数据RabbitMQ在许多情况下会阻止创建仅RAM节点的群集,但不能绝对阻止。

这里的示例显示了一个群集,其中包含一个磁盘和一个RAM节点,仅出于简化目的。这样的集群是一个糟糕的设计选择。

之前创建集群的命令加入--ram参数就是创建内存节点的命令

我们先在node2重置rabbitmq

$ rabbitmqctl stop_app

$ rabbitmqctl reset

创建一个内存节点

$ rabbitmqctl --ram join_cluster rabbit@mycentos7

$ rabbitmqctl start_app

$ rabbitmqctl cluster_status

 

 如果不加--ram参数默认是disc节点

通常我们使用默认即可,现在把刚刚创建的内存节点转换成disc节点

$ rabbitmqctl stop_app (任何操作都要先停mq)

$ rabbitmqctl change_cluster_node_type disc

$ rabbitmqctl start_app

$ rabbitmqctl cluster_status

 

 

集群搭建完成

我们在node1和node2分新建一个队列testQueue,testmq

 

 

 此时,我们把node2停掉,发现在node2上建的队列testmq丢失了

 

 

下一篇,测试一下高可用,镜像模式


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM