全部开发者教程

RabbitMQ 入门教程

RabbitMQ 简介
RabbitMQ 简介
首页 慕课教程 RabbitMQ 入门教程 RabbitMQ 入门教程 RabbitMQ集群集成HaProxy组件实操

RabbitMQ集群集成HaProxy组件实操

1. 前言

Hello,大家好。在上一小节中,我们将 KeepAlived 组件与我们的 RabbitMQ 集群进行了整合,使我们的 RabbitMQ 集群得到了 KeepAlived 组件的支撑,但是,只有 KeepAlived 组件是不够的,我们还需要 HaProxy 组件。

不知道同学们还记不记得 HaProxy 组件,他是保障 RabbitMQ 集群高可用持续运行下去的辅助工具,在前面的小节中,我们只是对 HaProxy 组件的基础定义和基础属性做了介绍,并没有实际去操作它。

本小节会为同学们介绍,如何在 RabbitMQ 集群中,去集成我们 HaProxy 组件,包括将 HaProxy 组件集成到 RabbitMQ 集群中的集成步骤等内容,学习本节内容的前提是,同学们已经对 RabbitMQ 集群以及 KeepAlived 组件有了初步的认识和一定的操作基础。

本节主要内容:

  • HaProxy 基础概念回顾;

  • 集成 HaProxy 组件步骤概述。

2.HaProxy 基础内容回顾

2.1 HaProxy 基础概念回顾

HaProxy 组件,但从字面意义上来讲,是由两个单词所组成,分别是 Ha ,以及 Proxy 。其中,Ha 指的是 High Availability 简称,取的是两个单词的首字符,即 HA ,中文含义就是我们常说的高可用。

而 proxy 就比较简单了,proxy 翻译过来具有代理的含义,代理我们可以理解为我们平常生活中的第三方办事机构,就是我们自己的事情交给第三方去做,等第三方完成我们交代的任务后,会给我们一个通知,HaProxy 中的 proxy 就是这个意思。

通过字面意思,我们可以知道,HaProxy 就是一种高可用的代理工具。那么这个代理工具对于 RabbitMQ 集群来说,又表示什么含义呢?

HaProxy 就是一种为集群提供高可用支持与服务的,一种高可用代理工具,其可以管理集群间的通信方式,可以对集群进行健康检查,甚至也可以对集群进行全方位的监控,说白了,HaProxy 就是一种辅助集群实现高可用、对集群进行监控、对集群进行健康检查的一种组件或软件。

我们可以在 HaProxy 中,通过配置不同地代理模式,来实现对集群的监控和集群间的健康检查。

在对 HaProxy 的基础概念有一个简单地回顾之后,我们再来简单回顾一下 HaProxy 中的基础属性,这些属性是整合 RabbitMQ 集群中的基础。

2.2 HaProxy 基础属性回顾

我们在 HaProxy 组件基础属性介绍小节中,我们对 HaProxy 组件常用的几个基础属性做了详细介绍,这些基础属性是:mode 属性、retries 属性、maxconn 属性、clitimeout 属性、servtimeout 属性,以及 states uri 属性。

我们简单来回顾一下这些基础配置属性的作用。

mode 属性,其主要作用是用来声明我们当前 RabbitMQ 集群节点中,HaProxy 所采用的代理模式。

retries 属性,其主要作用是用来声明,RabbitMQ 集群中,HaProxy 在集群间通信的一个尝试次数。

maxconn 属性,其主要作用是用来声明,当前节点中所允许接入到 HaProxy 中的最大连接数。

clitimeout 属性,其主要作用是用来声明,当前节点中客户端的一个空闲时间,单位为秒。

servtimeout 属性,其主要作用是用来声明,当前节点所在服务器的一个连接超时时间,单位也为秒。

states uri 属性,其主要用来声明,在 HaProxy 组件中提供的集群监控 web 管控台的一个地址。

在对 HaProxy 组件的基础内容作了简单回顾之后,下面让我们来看一下如何将 HaProxy 组件整合到我们的 RabbitMQ 集群中去。

Tips: 我们对 HaProxy 的部分基础内容作了简单的回顾,如果有不清楚的同学,可以回到《 HaProxy 组件基础属性介绍》小节中复习。

3 集成 HaProxy 组件步骤概述

和 KeepAlived 组件集成到 RabbitMQ 集群中那样,在将 HaProxy 组件集成到 RabbitMQ 集群中之前,我们假定同学们已经在自己的机器上,已经搭建好了任意一种模式的 RabbitMQ 集群, 如果没有完成任意一种模式 RabbitMQ 集群的搭建,那么是不能继续将 HaProxy 组件集成到集群中去的。

对于任意一种 HaProxy 集群模式而言,RabbitMQ 官方都为我们的集群搭建过程提供了很好地支持,同时,也为 HaProxy 组件的集成提供了清晰地集成步骤,下面就让我们看一下如何将 HaProxy 组件集成到我们的 RabbitMQ 集群中吧。

在将 HaProxy 组件整合到 RabbitMQ 集群之前,同学们一定要保证 KeepAlived 组件已经整合到了 RabbitMQ 集群中,否则,我们只集成 HaProxy 组件,无法完全发挥它的作用。

在下述集成 HaProxy 组件过程中,我们默认采用 Linux 服务器的 CentOS 7 版本,同学们注意。

第一步 安装 HaProxy 组件

在集成 HaProxy 组件之前,我们需要在自己的机器上下载并安装 HaProxy 组件,可以通过以下命令实现:

wget http://www.haproxy.org/download/1.6/src/haproxy-1.6.5.tar.gz

下载完成之后,我们会得到一个压缩包,接着,我们需要将该压缩包进行解压,解压命令如下:

tar -zxvf haproxy-1.6.5.tar.gz 

接着,我们需要在 HaProxy 组件安装目录下,执行以下命令:

make TARGET=linux31 
make install

经过上述安装命令之后,如果没有提示任何错误,则表明 HaProxy 组件已经安装成功了。

Tips: 如果在安装 HaProxy 过程中,提示缺少 gcc 编译环境,这就表明我们的机器上没有安装 gcc 编译环境,HaProxy 组件无法继续进行安装,我们只需要将 gcc 编译环境安装上去就可以了: yum install gcc 。

第二步 配置 HaProxy 组件

在安装完成 HaProxy 组件之后,我们需要对 HaProxy 组件进行 RabbitMQ 集群相关的配置,这个配置文件默认是没有的,需要我们在一下路径中创建:

/etc/haproxy/

在上述路径中,我们可以使用 Linux 系统的 touch 命令,来将 HaProxy 组件的配置文件创建出来,其配置文件名称必须为 haproxy.cfg 。

和 KeepAlived 的配置文件类似,haproxy.cfg 配置文件中的配置较多,由于篇幅原因,这里不再一一介绍,同学们可以在对之前介绍的基础属性有所了解之后,从 HaProxy 官方下载一个完整的配置文件即可。

在将官方的配置文件下载好之后,根据官方注释,将配置文件中与 RabbitMQ 集群相关的属性的值,全部修改为自己机器的真实数据就行了。

Tips: haproxy.cfg 这个配置文件,需要我们部署到所有的 RabbitMQ 集群节点中,并通过这个配置文件,来声明我们对集群监控所采用的代理模式,以及 HaProxy web 管控台的 uri 地址。

第三步 启动 HaProxy 组件

在将所有 RabbitMQ 集群节点的 HaProxy 组件全部配置好之后,最后,我们就需要启动 HaProxy 组件,HaProxy 组件的启动命令和 KeepAlived 组件的启动命令不同,启动命令吐下所示:

你的 HaProxy 安装路径/sbin/haproxy -f /etc/haproxy/haproxy.cfg

可以看到,在启动 HaProxy 组件时,需要通过位于 HaProxy 组件安装目录下 sbin 目录中的 haproxy 程序去启动,并且,在启动时,还需要通过 -f 参数来指名我们 HaProxy 配置文件 haproxy.cfg 的位置,这样,我们的 HaProxy 组件才能正常启动。

输入上述命令之后,我们也需要查看 HaProxy 组件的启动状态,查看命令如下:

ps -ef | grep haproxy

执行上述命令之后,如果可以看到 HaProxy 组件的线程信息,说明 HaProxy 组件已经成功启动,且对我们的 RabbitMQ 集群已经进行了高可用支撑。

我们也可以通过访问我们在 HaProxy 配置文件中所声明的 HaProxy Web 管控台的地址,来查看 HaProxy 有没有正常工作,HaProxy Web 管控台的地址如下图所示:

Tips: 1.我们在配置 HaProxy 的配置文件 haproxy.cfg 时,出于方便考虑,我们可以直接从 HaProxy 官方下载一份配置文件,然后直接放到相应的路径即可;
2. HaProxy 与 KeepAlived 组件是相辅相成的,按照 RabbitMQ 官网所要求的顺序,我们应该首先将 HaProxy 组件与 RabbitMQ 集群进行整合,然后再是 KeepAlived 组件,这个顺序同学们不要搞反了。

4. 小结

本小节为同学们介绍了 HaProxy 整合 RabbitMQ 集群的相关内容,包括 HaProxy 组件基础内容的回顾、HaProxy 组件的安装与配置,以及 HaProxy 组件服务的启动。本小节所介绍的整合内容均为基础整合内容,考虑到本门课程的定位,太难理解的内容并没有为大家介绍,如有兴趣,同学们可以私下查阅资料了解。