章节索引 :

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 组件的基础概念和基础属性有一个简单的了解之后,我们才会在最后的实操部分得心应手。

RabbitMQ 简介
RabbitMQ 简介
RabbitMQ 基础
Win环境-SpringBoot集成MQ Mac OS环境下RabbitMQ的安装与集成 Linux环境下RabbitMQ安装与服务命令实操 RabbitMQ 核心基础概念详解 RabbitMQ 基础核心配置文件介绍 RabbitMQ 消息发送原理概述 RabbitMQ 消息发送模式详解 RabbitMQ 交换机详解 RabbitMQ 消息监控平台介绍
RabbitMQ 基础特性与进阶
RabbitMQ的幂等性概念 RabbitMQ中消息确认与返回机制 RabbitMQ中消费者ACK与重回队列机制 RabbitMQ中的TTL消息是什么 死信队列基础概念详解与配置
RabbitMQ 整合 Spring 生态链
RabbitAdmin基础概念详解与配置 RabbitTemplate基础概念详解与配置 消息容器介绍 消息适配器概念讲解与基本属性介绍 消息适配器应用实操 消息转换器概念讲解与基本属性介绍 消息转换器应用实操
RabbitMQ 集群基础
Warren模式与Shovel模式介绍 Mirror模式与Federation模式介绍 RabbitMQ集群配置文件概述 KeepAlived组件基础属性介绍 HaProxy组件基础属性介绍 RabbitMQ集群故障排查与恢复概述
RabbitMQ 实战
消息发送模式实战之直接模式与主题模式 消息发送模式实战之发布订阅模式 消息发送模式实战之普通队列模式与工作队列模式 使用RabbitMQ优化用户登录功能 使用RabbitMQ优化用户注册功能 RabbitMQ集成KeepAlived组件实操 RabbitMQ集群集成HaProxy组件实操 使用RabbitMQ打造扛得住的高并发环境(一) 使用RabbitMQ打造扛得住的高并发环境(二) 使用RabbitMQ打造扛得住的高并发环境(三)