当前位置:首页 > 科技  > 软件

探析负载均衡器的实现原理

来源: 责编: 时间:2024-06-18 17:06:04 77观看
导读前言负载均衡器(Load Balancer,简称 LB)是一种硬件或者软件设备,它可以将客户端访问流量根据转发策略分发到多个服务器或者设备上,以确保系统的负载均衡,通过负载均衡可以有效避免单点故障,提高系统的可靠性和稳定性。LB是

前言

负载均衡器(Load Balancer,简称 LB)是一种硬件或者软件设备,它可以将客户端访问流量根据转发策略分发到多个服务器或者设备上,以确保系统的负载均衡,通过负载均衡可以有效避免单点故障,提高系统的可靠性和稳定性。LB是所有流量的入口,LB的高可用架构以及可扩展性对于业务的重要性不言而喻。本文全面剖析LB的架构和底层实现原理,以点带面,详细介绍LB的构成组件和实现技术、LB的后端网络拓扑以及LB集群的高可用性。JR328资讯网——每日最新资讯28at.com

LB的组成

图1 LB的构成组件图1 LB的构成组件JR328资讯网——每日最新资讯28at.com

用户每创建一个LB集群,都至少生产两个负载均衡器节点(LB node),它的承载实体可以是虚拟机也可以是容器,容器具有轻量和高性能特性。LB的构成包含三部分,分别如下:JR328资讯网——每日最新资讯28at.com

1.负载均衡器

负载均衡器主要接收client的传入流量,并按照负载均衡算法,将流量分发给LB node。JR328资讯网——每日最新资讯28at.com

2.监听器

用户可以向负载均衡器添加一个或者多个监听器,监听器主要用来配置协议和端口,根据检查客户端的流量连接请求,按照定义的转发策略将请求的映射端口流量分发到后端真正承载业务的后端服务器和端口。JR328资讯网——每日最新资讯28at.com

3.后端服务器

后端服务器就是业务的流量承载实体,可以是虚拟机、裸金属和容器。监听器会对后端服务器进行定期健康检查,如果后端服务器有问题,将会从监听器中摘掉异常服务器,如果后端服务器恢复正常,监听器会自动添加该服务器继续为业务提供服务器。负载均衡器按照用户设置的负载均衡算法(轮询/最少链接/源地址),将流量分发到后端服务器。JR328资讯网——每日最新资讯28at.com

负载均衡器高可用集群

图2 LB集群图2 LB集群JR328资讯网——每日最新资讯28at.com

负载均衡器作为用户的网络服务入口,一旦发生故障将影响业务的整体可用性,所以负载均衡器集群的目的就是提供高可用的负载均衡器服务。负载均衡器集群中包含多个单独工作的LB node,这些节点保持一致的负载均衡配置,并且具备相同的服务IP地址,提供统一的对外服务。 LB对外服务的ip地址称之虚拟ip(一般称vip),负载均衡器集群会自动将vip映射到某个LB nodeIP地址。如图2所示,每个LB集群的LB node包括Keepalive、LVS和Haproxy服务,其中LB集群会选择两个LB node 组成一个Keepalive集群,一个作为master,一个作为slave,其中master 节点为vip所在节点,是client访问业务的入口ip。Keepalive集群是一个高可用集群,它通过VRRP协议来防止单点故障。如果master节点有问题,slave节点将转为master节点,对外提供服务。lb-node0作为Keepalive集群的master节点,上面的LVS服务通过默认的加权轮训算法,将入口流量分发到LB集群的3个node节点,而作为Keepalive  slave的lb-node1上的LVS服务会将流量按照加权轮训算法分发到 lb-node1和lb-node2上。HAProxy作为监听器的载体,在其配置中为监听器添加后端服务器。JR328资讯网——每日最新资讯28at.com

LB后端网络拓扑

图1 LB的构成组件图1 LB的构成组件JR328资讯网——每日最新资讯28at.com

用户每创建一个LB集群,都至少生产两个负载均衡器节点(LB node),它的承载实体可以是虚拟机也可以是容器,容器具有轻量和高性能特性。LB的构成包含三部分,分别如下:JR328资讯网——每日最新资讯28at.com

1.负载均衡器

负载均衡器主要接收client的传入流量,并按照负载均衡算法,将流量分发给LB node。JR328资讯网——每日最新资讯28at.com

2.监听器

用户可以向负载均衡器添加一个或者多个监听器,监听器主要用来配置协议和端口,根据检查客户端的流量连接请求,按照定义的转发策略将请求的映射端口流量分发到后端真正承载业务的后端服务器和端口。JR328资讯网——每日最新资讯28at.com

3.后端服务器

后端服务器就是业务的流量承载实体,可以是虚拟机、裸金属和容器。监听器会对后端服务器进行定期健康检查,如果后端服务器有问题,将会从监听器中摘掉异常服务器,如果后端服务器恢复正常,监听器会自动添加该服务器继续为业务提供服务器。负载均衡器按照用户设置的负载均衡算法(轮询/最少链接/源地址),将流量分发到后端服务器。JR328资讯网——每日最新资讯28at.com

图3 LB后端网络拓扑图3 LB后端网络拓扑JR328资讯网——每日最新资讯28at.com

每个LB node包括两个网卡,分别为eth0和eth1。其中eth0为私有网络地址,用于和后端服务通信,eth1为基础网络地址,用于接收client数据。Haproxy作为eth0和eth1数据通信的桥梁。根据图3所示,LB后端网络拓扑详细介绍了客户端流量如何通过负载均衡集群,转发流量到后端服务器,然后后端服务器将响应数据如何返回至client。JR328资讯网——每日最新资讯28at.com

首先client 通过访问vip(1.2.3.252)到lb-node0,此时流量通过eth1网卡进入iptables规则,通过 PREROUTING 表的LUSTER_DIVERT 链上的规则,打上 fwmark。fwmark 的值是根据监听器的端口来分配,具体以 iptables 规则中的 fwmark 值为准,一般从 0x2710 (即10000) 开始分配,和keepalive中virtual_server_group中的值一致。JR328资讯网——每日最新资讯28at.com

然后流量到达lvs后,lvs根据fwmark配置,按照lvs配置算法,选择一个LB node(1.2.3.9)接受流量,如图3所示lvs对应的配置。此时haproxy 已经开启端口监听,流量进入haproxy 的应用程序,按照RR算法,选择一个合适的后端服务器进行流量转发。JR328资讯网——每日最新资讯28at.com

此时,通过查看LB node所在物理机hyper-1的arp信息和宿主机路由,流量到达br_vg_out网桥,按照bridge fdb流表配置,通过vxlan隧道,将请求数据发送至后端服务(1.2.3.6)所在的物理机hyper-3。hyper-3的内核对vxlan解包后,数据流入到sxxx网桥,然后根据bridge fdb信息,将数据交付给最终的后端服务器。此时需要注意是在hyper-1上后端服务1.2.3.6的mac地址(图中标红色)并不是其真正的mac地址,而是其所在物理服务器上网桥的一个网口pair的mac地址,它是封包流量的统一入口,最后会将流量转发到最终后端服务。 JR328资讯网——每日最新资讯28at.com

在hyper-3上的后端服务处理完client的请求后,响应数据是如何返回至client的呢?从LB-node0过来的数据包,进入hyper-3的iptables规则后,会对其打上fwmark,响应数据通过查找hyper-3上的策略路由的fwmark值进行路由匹配,然后将数据发送至hyper-3的br_vg_out网桥,通过vxlan隧道发送至LB-node0,此时数据不再经过lvs服务(lvs采用DR工作模式),而是直接将响应数据发送至client。JR328资讯网——每日最新资讯28at.com

LB集群健康检查


JR328资讯网——每日最新资讯28at.com

图4 LB node健康检查JR328资讯网——每日最新资讯28at.com


JR328资讯网——每日最新资讯28at.com

1.LB node健康检查

每个计算节点上都有lxc-monitor守护进程,它监控着物理机上以LXC形式运行的LB node,当LB node 由于某些原因出现stop情况后,lxc-monitor会接收到lxc对应的停止消息,并将该消息发送至lxc-event-handler,lxc-event-handler发送release指令给compute_server, compute_server 服务将会重建该LB node。同理,当整个hyper意外宕机后,其pair-hyper探测到hyper网络中断后(hyper和pair-hyper 相互探活彼此),将会触发重建hyper上面所有的LB node,保障LB node正常工作。JR328资讯网——每日最新资讯28at.com

图5 Listener健康检查JR328资讯网——每日最新资讯28at.com

2.Listener健康检查

Keepalive 的master节点配置misc_check,会对LB node里面 haproxy 启动的监听器的监听端口进行健康检查,探测流量走VBC网络,即eth1网卡。通过使用nc -vz命令定期对ip和端口进行探测,如果不通,则将它从lvs 后端摘掉,这样业务流量就不会转发到有问题监听器上了。JR328资讯网——每日最新资讯28at.com

3.Haproxy对后端服务检查

开启健康检测后,负载均衡器会根据对应配置定期检查后端服务的运行状态,当某个后端服务出现异常时,会自动隔离该后端服务,并将请求转发给其他健康的后端服务,实现高可用性。JR328资讯网——每日最新资讯28at.com

  • 健康检查方式:
  • TCP:通过向后端服务器发送 TCP 包来检测后端服务。
  • HTTP:通过向后端服务器发送 HTTP 请求来检测后端服务,你可以指定需要检测的 URI。负载均衡器会通过 HTTP 返回值是否为200来判断服务是否正常。
  • ICMP:通过向后端服务器发送 ICMP Echo Request 请求(即 ping)来检查后端网络是否可达。
  • UDP:UDP 方式会 结合 ICMP Echo Request 和 UDP port probe 两种方式来检查。
  • 健康检查选项:
  • 检查间隔:连续两次健康检查之间的时间间隔,单位为秒,范围为 2-60s。
  • 超时时间:等待健康检查请求返回的超时时间,检查超时将会被判定为一次检查失败,单位为秒,范围为 5 - 300s。
  • 不健康阈值:多少次连续检查失败之后,可以将后端服务屏蔽,范围为 2-10次。
  • 健康阈值:多少次连续检查成功之后,可以将后端服务恢复,范围为 2-10次。

结束语

本文介绍了LB的组成原理、高可用架构、网络流量模型分析和健康检查机制。只有全面深入了解负载均衡器的工作原理,才能快速定位业务在LB碰到的各种问题。LB可以为用户提供强大的功能和灵活配置,便于用户扩展和管理应用程序的基础架构,并且提高了服务的可用性和稳定性,为系统的构建和性能延伸提供了强有力的支持。                                                          JR328资讯网——每日最新资讯28at.com

本文链接://www.dmpip.com//www.dmpip.com/showinfo-26-94590-0.html探析负载均衡器的实现原理

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Kafka如何保证消息的不丢失与不重复

下一篇: Rust 在许多方面都优于 Go,但为什么没有 Go 流行?

标签:
  • 热门焦点
  • 6月iOS设备好评榜:第一蝉联榜首近一年

    6月iOS设备好评榜:第一蝉联榜首近一年

    作为安兔兔各种榜单里变化最小的那个,2023年6月的iOS好评榜和上个月相比没有任何排名上的变化,仅仅是部分设备好评率的下降,长年累月的用户评价和逐渐退出市场的老款机器让这
  • 6月安卓手机好评榜:魅族20 Pro蝉联冠军

    6月安卓手机好评榜:魅族20 Pro蝉联冠军

    性能榜和性价比榜之后,我们来看最后的安卓手机好评榜,数据来源安兔兔评测,收集时间2023年6月1日至6月30日,仅限国内市场。第一名:魅族20 Pro好评率:95%5月份的时候魅族20 Pro就是
  • 把LangChain跑起来的三个方法

    把LangChain跑起来的三个方法

    使用LangChain开发LLM应用时,需要机器进行GLM部署,好多同学第一步就被劝退了,那么如何绕过这个步骤先学习LLM模型的应用,对Langchain进行快速上手?本片讲解3个把LangChain跑起来
  • 服务存储设计模式:Cache-Aside模式

    服务存储设计模式:Cache-Aside模式

    Cache-Aside模式一种常用的缓存方式,通常是把数据从主存储加载到KV缓存中,加速后续的访问。在存在重复度的场景,Cache-Aside可以提升服务性能,降低底层存储的压力,缺点是缓存和底
  • 19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    19个 JavaScript 单行代码技巧,让你看起来像个专业人士

    今天这篇文章跟大家分享18个JS单行代码,你只需花几分钟时间,即可帮助您了解一些您可能不知道的 JS 知识,如果您已经知道了,就当作复习一下,古人云,温故而知新嘛。现在,我们就开始今
  • Temu起诉SHEIN,跨境电商战事升级

    Temu起诉SHEIN,跨境电商战事升级

    来源 | 伯虎财经(bohuFN)作者 | 陈平安日前据外媒报道,拼多多旗下跨境电商平台Temu正对竞争对手SHEIN提起新诉讼,诉状称Shein“利用市场支配力量强迫服装厂商与之签订独家
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的“征求意见版”:1、取消P序列
  • 机构称Q2全球智能手机出货量同比下滑11% 苹果份额依旧第2

    机构称Q2全球智能手机出货量同比下滑11% 苹果份额依旧第2

    7月20日消息,据外媒报道,研究机构的报告显示,由于需求下滑,今年二季度全球智能手机的出货量,同比下滑了11%,三星、苹果等主要厂商的销量,较去年同期均有下
  • 英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    英特尔Xe HPG游戏显卡:拥有512EU,单风扇版本

    据10 月 30 日外媒 TheVerge 消息报道,英特尔 Xe HPG Arc Alchemist 的正面实被曝光,不仅拥有 512 EU 版显卡,还拥有 128EU 的单风扇版本。另外,这款显卡 PCB
Top
Baidu
map