RabbitMQ集群集成KeepAlived组件实操
1. 前言
Hello,大家好。通过上述几个小节的介绍,我们已经对如何使用 RabbitMQ 去优化常见的传统功能已经有了一个大概的思路,但是,我们只了解这些内容是远远不够的。
不知道同学们还记不记得 KeepAlived 组件,他是帮助搭建 RabbitMQ 集群的工具组件,在前面的小节中,我们只是对 KeepAlived 组件的基础定义和基础属性做了介绍,并没有实际去操作它。
本小节会为同学们介绍,如何在 RabbitMQ 集群中,去集成我们 KeepAlived 组件,包括将 KeepAlived 组件集成到 RabbitMQ 集群中的集成步骤等内容,学习本节内容的前提是,同学们已经对 RabbitMQ 集群有了初步的认识。
本节主要内容:
-
KeepAlived 基础概念回顾;
-
集成 KeepAlived 组件步骤概述。
2.KeepAlived 基础内容回顾
2.1 KeepAlived 基础概念回顾
在 KeepAlived 组件基础属性介绍这一小节中,我们采用人们在生活中的状态为例,为各位同学介绍了 KeepAlived 组件的基础概念。
KeepAlived 由 Keep 和 Alived 两个单词组成,Keep 翻译过来具有保持的含义,而 Alived 翻译过来具有或者的含义,我们把这两个含义组合起来,就是保持活着的意思。
在 KeepAlived 中,这一’活着’的状态指的就是计算机服务集群中的,一种可以持续提供服务状态的一种保障状态,当我们在集群中配置了 KeepAlived 时,我们就可以将我们的集群服务状态称之为‘活着’。
从专业角度来讲,KeepAlived 组件其实就是一种可以提供计算机服务集群间的服务状态不间断运行的一种辅助软件,或者叫做工具组件。 通过在集群中引入 KeepAlived 组件,再结合一定的配置,可以保证集群持续稳定的对外提供服务,不受外界环境的影响。(特殊因素除外)。
KeepAlived 组件本身还提供了一些其他的功能,比如,对不同集群间的服务状态的监控,对不同集群间的服务状态的一个心跳检测机制,提供对集群服务负载均衡的支持等功能,我们可以根据实际需要,去整合 KeepAlived 组件与集群。
2.2 KeepAlived 基础属性回顾
我们在 KeepAlived 组件基础属性介绍小节中,我们对 KeepAlived 组件常用的几个基础属性做了详细介绍,这些基础属性是:router_id 属性、interval 属性、state 属性、interface 属性、virtual_router_id 属性,以及 virtual ipaddress 配置项。
我们简单来回顾一下这些基础配置属性的作用。
router_id 属性,主要作用是用来声明我们当前 RabbitMQ 集群节点的名称,这个名称我们可以自由指定,该属性的默认值是我们的 hostname ,也就是当前集群节点的主机名称。
interval 属性,主要用来对集群的运行状态进行检测的一个时间间隔,默认值为两秒。
state 属性,主要作用是用来声明集群当前节点的节点模式,共有主节点和从节点两种模式。
interface 属性,其主要作用是用来声明当前节点所在服务器的网卡的名称,这一配置是 KeepAlived 组件要求必须要配置的属性,其没有默认值。
virtual_router_id 属性,其主要作用是用来声明当前节点虚拟路由的 id 号。
virtual ipaddress 配置项,该配置项的主要作用就是定义我们集群对外暴露的虚拟的 ip 地址。
在对 KeepAlived 组件的基础内容作了简单回顾之后,下面让我们来看一下如何将 KeepAlived 组件集成到我们的 RabbitMQ 集群中去。
Tips: 我们对 KeepAlived 的部分基础内容作了简单的回顾,如果有不清楚的同学,可以返回到《KeepAlived组件基础属性介绍》小节中复习。
3 集成 KeepAlived 组件步骤概述
在本套课程中,我们已经将 RabbitMQ 中几乎所有的集群模式都进行了基础地了解,所以,在将 KeepAlived 组件集成到 RabbitMQ 集群中之前,假定同学们已经在自己的机器上,已经搭建好了任意一种模式的 RabbitMQ 集群, 如果没有完成任意一种模式 RabbitMQ 集群的搭建,那么是不能继续将 KeepAlived 组件集成到集群中去的。
对于任意一种 RabbitMQ 集群模式而言,RabbitMQ 官方都为我们的集群搭建过程提供了很好地支持,同时,也为 KeepAlived 组件的集成提供了清晰地集成步骤,下面就让我们看一下如何将 KeepAlived 组件集成到我们的 RabbitMQ 集群中吧。
在下述集成 KeepAlived 组件过程中,我们默认采用 Linux 服务器的 CentOS 7 版本,同学们注意。
第一步 安装 KeepAlived 组件
在集成 KeepAlived 组件之前,我们需要在自己的机器上下载并安装 KeepAlived 组件,可以通过以下命令实现:
wget http://www.keepalived.org/software/keepalived-1.2.18.tar.gz
下载完成之后,我们会得到一个压缩包,接着,我们需要将该压缩包进行解压,解压命令如下:
tar -zxvf keepalived-1.2.18.tar.gz
接着,我们需要安装 KeepAlived 组件,安装命令如下:
// 进入到 KeepAlived 安装目录下
cd keepalived-1.2.18/ && ./configure
// 编译并安装 KeepAlived
make && make install
经过上述安装命令之后,如果没有提示任何错误,则表明 KeepAlived 组件已经安装成功了。
Tips: 如果在安装 KeepAlived 过程中,提示缺少安全套件,无法进行安装,那就表明我们缺少 ssl 安全协议,我们只需要将这个安全协议安装上去就可以了: yum install -y openssl openssl-devel
第二步 配置 KeepAlived 组件
在安装完成 KeepAlived 组件之后,我们需要对 KeepAlived 组件进行 RabbitMQ 集群相关的配置,这个配置文件默认在以下路径:
/etc/keepalived/keepalived.conf
如果你的路径下没有这个配置文件,那就只能自己创建一个同名的配置文件了。
keepalived.conf 配置文件中的配置较多,由于篇幅原因,这里不再一一介绍,同学们可以在对之前介绍的基础属性有所了解之后,从 KeepAlived 官方下载一个完整的配置文件即可。
在将官方的配置文件下载好之后,根据官方注释,将配置文件中与 RabbitMQ 集群相关的属性的值,全部修改为自己机器的真实数据就行了。
Tips: keepalived.conf 这个配置文件,需要我们部署到所有的 RabbitMQ 集群节点中,并通过这个配置文件,来声明哪一个几点是集群主节点,哪些节点是集群的从节点。
第三步 启动 KeepAlived 组件
在将所有 RabbitMQ 集群节点的 KeepAlived 组件全部配置好之后,最后,我们就需要启动 KeepAlived 组件,启动命令如下所示:
service keepalived start
输入上述命令之后,我们需要查看 KeepAlived 组件的启动状态,查看命令如下:
ps -ef | grep keepalived
执行上述命令之后,如果可以看到 KeepAlived 组件的线程信息,说明 KeepAlived 组件已经成功启动,且已经对 RabbitMQ 集群开始了监听。
我们可以通过设置的虚拟 IP 地址来访问我们的 RabbitMQ 集群,以测试 RabbitMQ 的可用性。
Tips: 在启动 KeepAlived 组件之前,我们需要先确保 HaProxy 组件服务处于运行状态,因为他们两个组件是互相依赖的,这一点在下一小节中会做介绍。
4. 小结
本小节为同学们介绍了 KeepAlived 整合 RabbitMQ 集群的相关内容,包括 KeepAlived 组件基础内容的回顾、KeepAlived 组件的安装与配置,以及 KeepAlived 组件服务的启动。本小节所介绍的整合内容均为基础整合内容,考虑到本门课程的定位,太难理解的内容并没有为大家介绍,如有兴趣,同学们可以私下查阅资料了解。