Rabbit安装(单机及集群,阿里云) (2)

RabbitMQ(CentOS7):提取码:84lg

安装 安装erlang sudo rpm -Uvh /home/download/erlang-21.2.3-1.el7.centos.x86_64.rpm 安装socat sudo yum install -y socat 安装RabbitMQ sudo rpm -Uvh /home/download/rabbitmq-server-3.7.9-1.el7.noarch.rpm 校验

没有校验的安装是不合理的。

此时,我们可以通过系统服务的方式,启动RabbitMQ服务。

见到如下页面就表示安装OK了。

在这里插入图片描述

RabbitMQ普通模式(多机多节点安装):

简单说一下内存节点和磁盘节点。RabbitMQ中硬盘节点负责数据落地,负责将元数据落地到硬盘等工作。而内存节点不会进行元数据到硬盘的落地。所以如果一个集群只有内存节点,那么一旦断电,就彻底GG。另外,建议实际生产,配备多个磁盘节点,避免单点故障。

RabbitMQ的Node名

首先,在安装RabbitMQ之前,需要对阿里云服务器的HostName进行变更。

具体看下图:

在这里插入图片描述

在这里插入图片描述

我的服务器集群,是node0,node1,node2。有需要的可以改一下。

详细的原因,以及替代方案,会在后面提及。

修改hosts文件

通过以下命令

sudo vim /etc/hosts

修改hosts文件:

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 172.26.40.223 node0 node0 172.26.40.224 node1 node1 172.26.40.225 node2 node2

前两行,一般为系统默认生成,可以不进行修改。

而后三行,就是我们需要进行修改和添加的。

后三行,首先IP地址,一般采用内网(因为内网速度快)。如果由于某些原因,无法使用内网IP,那就只能外网IP了。后两者其实就是RabbitMQ的节点名,此处等同于服务器的HostName,原因后面再说。

然后,通过SCP,将上述文件同步到所有集群服务器。

sudo scp /etc/hosts root@node1:/etc/ sudo scp /etc/hosts root@node2:/etc/

PS:期间,会需要你输入另外两台服务器的对应密码(否则,岂不是谁都可以向你服务器传文件)。

同步erlang的cookie文件

由于RabbitMQ的集群是基于其实现语言erlang自身的分布式实现。所以我们需要通过同步erlang的cookie文件,来帮助RabbitMQ实现集群。就类似于,大家都有相同的erlang.cookie,表示大家是自己人,可以相互通信。

在node0服务器上,执行以下语句:

scp /var/lib/rabbitmq/.erlang.cookie root@node1:/var/lib/rabbitmq/ scp /var/lib/rabbitmq/.erlang.cookie root@node2:/var/lib/rabbitmq/ 防火墙

之前已经介绍了。不再赘述。

集群添加 启动RabbitMQ

通过以下命令,启动所有节点的RabbitMQ实例。

sudo systemctl start rabbitmq-server 将node1添加到集群(node0的集群) 停止RabbitMQ应用(与停止实例是不同的) rabbitmqctl stop_app 重置RabbitMQ设置 rabbitmqctl reset 加入集群 rabbitmqctl join_cluster rabbit@node0 --ram

PS:集群添加节点成功,应该可以看到如下效果:

在这里插入图片描述

启动RabbitMQ应用 rabbitmqctl start_app 校验集群 rabbitmqctl cluster_status

PS:当然,也可以直接从Web管理界面,更直观地看到。

PS:其实,单机模式下,各个节点就是集群。不过是由单个磁盘节点组成的单节点集群。

**重复该过程,将其它节点也添入到node0的集群中。

最终可以在Web管理界面,看到如下效果图,表示RabbitMQ多机多节点集群构建成功。

在这里插入图片描述

PS:图中Info中有标明,当前node0为disc节点,而node1与node2为RAM节点。

扩展(改变节点类型)

按照上述的方式,构建出来的集群,是一个磁盘节点+多个内存节点。为了提高可用性。往往需要复数个磁盘节点。所以,这里简单介绍一下切换节点类型的方式。

停止RabbitMQ应用 rabbitmqctl stop_app 改变当前RabbitMQ实例在集群中的节点类型 rabbitmqctl change_cluster_node_type disc

PS:集群节点类型切换成功,应该可以看到如下效果:

在这里插入图片描述

启动RabbitMQ应用 rabbitmqctl start_app

PS:集群节点类型修改成功,应该可以看到如下Web管理界面:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wppdfg.html