Advertisement

RabbitMq(3)集群管理

阅读量:
一、单机多节点配置

通过配置端口和节点名称等参数,在同一台机器上可启动多个rabbitmq服务节点以建立集群。配置每个节点独有的端口以及路径和名称即可。通过设置RABBITMQ_NODE_PORT和RABBITMQ_NODENAME变量等参数可指定各节点的端口及名称,请注意若启用了rabbitmq_management插件功能,则需为其分配独特的端口号。接下来我们将分别启动rabbitmq1@hadoop、rabbitmq2@hadoop及rabbitmq3@hadoop三个节点以完成集群搭建工作。

①首先启动三个节点,分别设置5672、5673、5674端口号。

在这里插入图片描述

②查看各个节点集群状态,可以看到三个节点分别属于独立的集群。

在这里插入图片描述

③将rabbitmq2@hadoop节点加入到rabbitmq1@hadoop所属的集群中。

在这里插入图片描述

④检查节点集群状态时发现rabbitmq1@hadooprabbitmq2@hadoop目前属于同一个集群。

在这里插入图片描述

⑤执行步骤④时,请将rabbitmq3节点配置文件纳入到该集群中。
⑥请检查节点的集群状态,在此期间确认这三个节点已经被成功集成到同一个集群中。

在这里插入图片描述
二、集群名称

集群名称预设为集群中的第一个节点的名称。另外一种方式是通过调用set_cluster_name方法来实现。

在这里插入图片描述
三、集群节点类型

使用cluster_status命令查看集群状态时,{nodes,[{disc,[rabbitmq1@hadoop,rabbitmq2@hadoop,rabbitmq3@hadoop]}]}这一行中,disc标识了节点类型为磁盘类型,还有一种是ram内存类型。其中磁盘节点会将交换器,队列,绑定关系等保存到磁盘中,而内存节点只保存在内存中。所以,在单节点的集群中,节点类型必须为disc,否则,系统重启之后系统配置信息都会丢掉。而多节点的集群系统中,可以将部分节点设置为ram类型,提高系统的效率,当ram节点重启后,会先去disc节点读取系统配置信息。
在创建集群时可以添加–ram参数来指定节点为内存类型。

在这里插入图片描述

查看集群状态,可以看到rabbitmq3@hadoop已经被标识为内存类型(ram)了。

在这里插入图片描述

第二种方式可以通过change_cluster_node_type命令来修改节点类型。

在这里插入图片描述

查看集群状态,rabbitmq3@hadoop已经被重新设置为磁盘类型(disc)了。

在这里插入图片描述
四、删除节点

第一种方式当前节点主动退出集群,通过reset命令重置节点集群状态。

在这里插入图片描述

通过检查集群状态,能够观察到 rabbitmq3@hadoop不再属于 rabbitmq1@hadoop的集群。

在这里插入图片描述

在第二种方法中,其他节点利用forget_cluster_node命令移除集群中的相关节点.根据rabbitmq的规定,在所有集群节点被关闭后,必须确保最后一个被关闭的集群成员能够先行启动,以便其余成员能够顺利接入.如果不希望依赖最后一个被关闭的集群成员来开启剩余成员的话,就需要使用forget_cluster_node命令将最后一个被关闭的集群成员从整体中排除出去.

在这里插入图片描述

第①步中, rabbitMQ-3 @ Hadoop 是最后一个关闭的节点, rabbitMQ-2 @ Hadoop 和 rabbitMQ-1 @ Hadoop 的启动均依仗于 rabbitMQ-3 @ Hadoop 的成功启动。建议依次尝试启动 rabbitMQ-2 @ Hadoop 节点,并查看其运行日志信息。a. 依次尝试启动 rabbitMQ-2 @ Hadoop 节点,并查看其运行日志信息。

在这里插入图片描述

b.查看启动日志记录以获取信息。指示等待其他集群中的节点开始启动状态。最大等待时间设置为30秒;最多允许重试9次。

在这里插入图片描述

c.启动失败。

在这里插入图片描述

通过rabbitmq2@hadoop节点上的操作执行forget_cluster_node命令,在该集群中删除rabbitmq3@hadoop节点。– offline: offline 表示离线处理

在这里插入图片描述

④在启动rabbitmq2@hadoop。

在这里插入图片描述

⑤查看集群状态,可以看到rabbitmq2@hadoop以及成功启动了。

在这里插入图片描述

这里要注意,如果要重新启动rabbitmq3@hadoop会报错,以下是报错信息。

在这里插入图片描述

这里报错是因为虽然已经从rabbitmq2@hadoop集群中移除了rabbitmq3@hadoop节点,并未将其相关配置记录到rabbitmq3@hadoop节点的管理信息库中。当rabbitmq3@hadoop重新启动后系统加载了旧集群的配置文件并继承了旧集群的管理信息库设置。由于该节点仍标记为属于rabbitmq2@hadoop集群因此在尝试连接该集群时遇到了拒绝连接的问题。为了解决此问题需要删除与该节点相关的管理信息库设置即可通过删除${RABBITMQ_HOME}/var/lib/rabbitmq/mnesia/rabbitmq3@hadoop目录中的所有文件来实现。

全部评论 (0)

还没有任何评论哟~