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

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

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

前言

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

LB的组成

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

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

1.负载均衡器

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

2.监听器

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

3.后端服务器

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

负载均衡器高可用集群

图2 LB集群图2 LB集群NSD28资讯网——每日最新资讯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作为监听器的载体,在其配置中为监听器添加后端服务器。NSD28资讯网——每日最新资讯28at.com

LB后端网络拓扑

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

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

1.负载均衡器

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

2.监听器

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

3.后端服务器

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

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

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

然后流量到达lvs后,lvs根据fwmark配置,按照lvs配置算法,选择一个LB node(1.2.3.9)接受流量,如图3所示lvs对应的配置。此时haproxy 已经开启端口监听,流量进入haproxy 的应用程序,按照RR算法,选择一个合适的后端服务器进行流量转发。NSD28资讯网——每日最新资讯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地址,它是封包流量的统一入口,最后会将流量转发到最终后端服务。 NSD28资讯网——每日最新资讯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。NSD28资讯网——每日最新资讯28at.com

LB集群健康检查


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

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


NSD28资讯网——每日最新资讯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正常工作。NSD28资讯网——每日最新资讯28at.com

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

2.Listener健康检查

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

3.Haproxy对后端服务检查

开启健康检测后,负载均衡器会根据对应配置定期检查后端服务的运行状态,当某个后端服务出现异常时,会自动隔离该后端服务,并将请求转发给其他健康的后端服务,实现高可用性。NSD28资讯网——每日最新资讯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可以为用户提供强大的功能和灵活配置,便于用户扩展和管理应用程序的基础架构,并且提高了服务的可用性和稳定性,为系统的构建和性能延伸提供了强有力的支持。                                                          NSD28资讯网——每日最新资讯28at.com

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

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

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

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

标签:
  • 热门焦点
  • vivo TWS Air开箱体验:真轻 臻好听

    vivo TWS Air开箱体验:真轻 臻好听

    在vivo S15系列新机的发布会上,vivo的最新款真无线蓝牙耳机vivo TWS Air也一同发布,本次就这款耳机新品给大家带来一个简单的分享。外包装盒上,vivo TWS Air保持了vivo自家产
  • 一篇聊聊Go错误封装机制

    一篇聊聊Go错误封装机制

    %w 是用于错误包装(Error Wrapping)的格式化动词。它是用于 fmt.Errorf 和 fmt.Sprintf 函数中的一个特殊格式化动词,用于将一个错误(或其他可打印的值)包装在一个新的错误中。使
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • ESG的面子与里子

    ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大“烤”之下的除了众生,还有各大企业发布的ESG报告。ESG是“环境保
  • 当家的盒马,加速谋生

    当家的盒马,加速谋生

    来源 | 价值星球Planet作者 | 归去来自己“当家”的盒马,开始加速谋生了。据盒马官微消息,盒马计划今年开放生鲜供应链,将其生鲜商品送往食堂。目前,盒马在上海已经与
  • 三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    三星Galaxy Z Fold5官方渲染图曝光:13.4mm折叠厚度依旧感人

    据官方此前宣布,三星将于7月26日在韩国首尔举办Unpacked活动,届时将带来带来包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    iQOO Neo8 Pro抢先上架:首发天玑9200+ 安卓性能之王

    经过了一段时间的密集爆料,昨日iQOO官方如期对外宣布:将于5月23日推出全新的iQOO Neo8系列新品,官方称这是一款拥有旗舰级性能调校的作品。随着发布时
  • OPPO K11样张首曝:千元机影像“卷”得真不错!

    OPPO K11样张首曝:千元机影像“卷”得真不错!

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • 联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将要推出,搭载高通骁龙 870 处理器

    联想小新Pad Pro 12.6将于秋季新品会上推出,官方按照惯例直接在发布会前给出了机型的所有参数。联想小新 Pad Pro 12.6 将搭载高通骁龙 870 处理器,重量为 5
Top