HaProxy组件基础属性介绍
1. 前言
Hello,大家好。通过上一小节的学习,我们已经对 KeepAlived 组件有了一个基础的了解,KeepAlived 组件并不是单独来使用的,它需要搭配 HaProxy 组件才行。
本小节会介绍一些 HaProxy 组件的基础内容,例如,什么是 HaProxy 、HaProxy 的适用范围、为什么要使用 HaProxy 等内容,在学完本小节内容之后,我们就可以自主搭建一套完整的高可用的 RabbitMQ 集群了。
本节主要内容:
- HaProxy 组件基础概念概述。
2.HaProxy 组件基础概念概述
2.1 什么是 HaProxy 组件?
什么是 HaProxy 组件呢?我们可以像理解 KeepAlived 组件那样,去理解 HaProxy 组件。HaProxy 这一名词和 KeepAlived 名词一样,也是一个组合词,我们拆开来看,Ha 其实是 High Availability 简称,取的是两个单词的首字符,即 HA ,中文含义就是我们常说的高可用。
而 proxy 就比较简单了,proxy 翻译过来具有代理的含义,代理我们可以理解为我们平常生活中的第三方办事机构,就是我们自己的事情交给第三方去做,等第三方完成我们交代的任务后,会给我们一个通知,HaProxy 中的 proxy 就是这个意思。
在清楚了 HaProxy 各组成名词之后,我们就不难理解到底什么是 HaProxy 了。HaProxy 翻译过来其实指的就是一种高可用的代理工具,或者可以叫做一种软件。
即 HaProxy 就是一种为集群提供高可用支持与服务的,一种高可用代理工具,其可以管理集群间的通信方式,可以对集群进行健康检查,甚至也可以对集群进行全方位的监控,说白了,HaProxy 就是一种辅助集群实现高可用、对集群进行监控、对集群进行健康检查的一种组件或软件。
而实现这种高可用,以及集群监控和集群健康检查的手段,则是通过 HaProxy 中的 Proxy 代理实现的,我们可以配置采用 tcp 还是 http 代理的方式,这点同学们简单了解即可。
2.2 HaProxy 组件的作用
从上述 HaProxy 组件的定义中,我们不难看出,HaProxy 的首要功能其实就是为集群提供高可用性的支持,HaProxy 允许我们对不同的集群进行整合,当然,不局限于 RabbitMQ 集群,只要是某种服务所组成的集群,我们都可以使用 HaProxy 去管理, 从而提高我们集群整体的可靠性和高可用性。
除此之外,HaProxy 还提供了类似于我们所熟知的后台管理系统那样的,集群监控平台界面,在集群监控平台中,我们可以看到非常详细的集群中各节点的状态信息,包括关键的状态属性,以及各集群间的一个通信状态,而这种监控结果,HaProxy 会以文字表格和图表的形式展现给我们。
3 HaProxy 组件基础属性
要想在集群中使用 HaProxy 组件,就需要在将 HaProxy 组件安装完毕后,根据实际的业务场景去配置我们的 HaProxy 组件,以更好地服务于我们的集群环境。
那么,配置 HaProxy 都有哪些基础属性呢,下面就让我们来看一些在 HaProxy 组件中,最基础的配置属性。
mode 属性
该属性同时位于 defaults 配置项和 listen_rabbitmq_cluster 配置项下,其主要作用是用来声明我们当前 RabbitMQ 集群节点中,HaProxy 所采用的代理模式,我们可以根据我们的实际业务需要来选择采用哪种代理模式,支持采用 tcp 或 http 协议的代理模式。
retries 属性
该属性位于 defaults 配置项下,其主要作用是用来声明,RabbitMQ 集群中,HaProxy 在集群间通信的一个尝试次数,如果超过这个尝试次数,集群的某一节点没有返回响应,那么,HaProxy 就会认为该节点不可用。
maxconn 属性
该属性位于 defaults 配置项下,其主要作用是用来声明,当前节点中所允许接入到 HaProxy 中的最大连接数,这个最大连接数应该根据实际的业务场景去设置,不能设置的过大或过小,一般都被设置为 2000 。
clitimeout 属性
该属性位于 defaults 配置项下,其主要作用是用来声明,当前节点中客户端的一个空闲时间,单位为秒,如果客户端的空闲时间超过了这一约束,则 HaProxy 就会发起重连机制,重新连接集群各节点。
servtimeout 属性
该属性位于 defaults 配置项下,其主要作用是用来声明,当前节点所在服务器的一个连接超时时间,单位也为秒,如果我们连接服务器所消耗的时间超过了这一限制,那么 HaProxy 也会发起重连机制,重新连接集群各节点。
states uri 属性
该属性位于 listen stats 配置项下,其主要用来声明,在 HaProxy 组件中提供的集群监控 web 管控台的一个地址,往往会集合位于同一配置项下的 bind 属性来一起使用,通过bind 绑定访问 ip 和端口号,通过 states uri 来绑定访问路径,这样我们就可以使用这个地址来访问 HaProxy 提供的集群 web 管控台了。
4. 小结
本小节为同学们介绍了 HaProxy 组件的基础内容,包括什么是 HaProxy 组件、HaProxy 组件的作用、适用范围,以及 HaProxy 组件的一些基础的配置属性和配置项,同学们只有对 HaProxy 组件的基础概念和基础属性有一个简单的了解之后,我们才会在最后的实操部分得心应手。