云边日落 飞流直下三千尺,疑是银河落九天。 (唐·李白·望庐山瀑布)
歌曲封面 未知作品
  • 歌曲封面“魔女の宅急便”~ルージュの伝言松任谷由実

渝ICP备2021002886号-1

渝公网安备50022502000591号

网站已运行 3 年 331 天 21 小时 1 分

Powered by Typecho & Sunny

2 online · 40 ms

Title

阿里云---SLB

醴都_collect

·

Article
⚠️ 本文最后更新于2021年07月11日,已经过了1042天没有更新,若内容或图片失效,请留言反馈

前言:宁可一思进,莫要一思停

负载均衡(Load Balance)其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。————转载自百度百科

下图阿里云给出的高可用架构
多高可用架构.png

1.负载均衡产品分类

阿里云在2021-03-17更新了负载均衡的有关帮助文档,引入了应用型负载均衡ALB(Application Load Balancer),将原负载均衡SLB(Server Load Balancer)改名为传统型负载均衡CLB(Classic Load Balancer),现在负载均衡SLB为负载均衡产品统称。

2.传统型负载均衡

2.1如何实现

CLB由以下三个部分组成:
CLB实例 (Instances)
一个CLB实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个CLB实例,并至少添加两台ECS实例,并用CLB实例监听ECS实例
监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
后端服务器(Backend Servers)
后端服务器是一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。

CLB基本架构
CLB基本架构.png

其中四层负载均衡通过LVS(Linux Virtual Server)+ keepalived的方式实现,七层负载均衡通过Tengine(淘宝网发起的Web服务器项目,在Nginx的基础上,针对有大访问量的网站需求进行了优化)实现。

2.2不同CLB实例数量的高可用架构

单实例高可用
单CLB实例高可用.png
这里的负载均衡器只要一个,如果负载均衡器宕机出问题则负载均衡也实现不了
这里引入两个关键词
Region——区域,代表一个数据中心
AZ——availability可用分区
不同的区域的不能通信但可以通过vpn或专线来实现通信,相同区域的不同可用区则可以实现通信

多实例高可用
CLB多实例高可用.png

2.3四层负载均衡实现原理

如下图所示,各个地域的四层负载均衡实际上是由多台LVS机器部署成一个LVS集群来运行的。采用集群部署模式极大地保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。
CLB四层负载均衡原理.png
LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。如下图所示,当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上。图中实线表示现有的连接,图中虚线表示当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。
CLB四层负载均衡原理2.png

3.应用型负载均衡

3.1应用型负载均衡简介

应用型负载均衡ALB(Application Load Balancer)是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力。ALB具备处理复杂业务路由的能力,与云原生相关服务深度集成,是阿里云官方提供的云原生Ingress网关。

3.2相关组成

ALB包含以下基本组成部分
实例
面向七层,提供了超强七层负载均衡能力,通过将流量分发到不同的后端服务器来扩展应用系统的服务吞吐能力。单实例可处理高达100万QPS。
监听
监听是ALB最小业务单元,监听上需要配置协议与端口以告知ALB需要处理什么流量,例如HTTP协议,80端口。每个ALB至少有一个监听,才能开始流量处理与分发。每个ALB最多可以配置50个监听,用于处理不同的业务流量。
转发规则
转发规则用于确定ALB实例如何将请求路由到一个或多个后端服务器组中的后端服务器。ALB具备强大的高级路由能力,在传统的路由规则基础上,还可以基于HTTP标头、Cookie和HTTP请求方法等多种规则进行转发,实现基于业务的灵活调度。
服务器组
服务器组是一个逻辑组,包含多个后端服务器用于处理ALB分发的业务请求。ALB中服务器组独立于ALB存在,可以将同一服务器组挂载在不同ALB内。服务器组最大可以包含1000个后端服务器。ALB服务器组支持云ECS、ECI、ENI等多种类型的后端服务器。
健康检查
ALB通过健康检查来判断后端服务器的业务可用性。ALB探测服务器组中不健康的服务器组,并避免将流量分发给不健康的服务器组。ALB支持丰富灵活的健康检查配置,如协议、端口、以及各种健康检查阈值。同时ALB提供健康检查模板,可将健康检查模板快速地应用到不同的服务器组。

附·什么是健康检查

负载均衡通过健康检查来判断后端服务器(ECS实例)的业务可用性。健康检查机制提高了前端业务整体可用性,避免了后端ECS异常对总体服务的影响。
开启健康检查功能后,当后端某台ECS健康检查出现异常时,负载均衡会自动将新的请求分发到其它健康检查正常的ECS上;而当该ECS恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中。

相关流程
应用层:
简单的来说就是向后端ECS的IP+【健康检查端口】+【检查路径】发送HTTP HEAD请求,判断返回的http响应码,若无相应则判定健康检查失败
kquvj0yd.png
传输层(tcp):
就是向后端ECS的内网IP+【健康检查端口】发送TCP SYN数据包,没有收到后端ECS返回的数据包,则认为服务无响应,判定健康检查失败;并向后端ECS发送RST数据包中断TCP连接
kquvl5ch.png
传输层(UDP):
就是向后端ECS的内网IP+【健康检查端口】发送UDP报文。如果后端ECS相应端口未正常监听,则系统会返回类似port XX unreachable的ICMP报错信息,反之不做任何处理
特别注意:
在Linux的环境下UDP健康检查可能会与实例的实际状态不一致。其原因是因为Linux的防ICMP攻击会导致无法收到ICMP应答而判定健康检测成功
kquvqtul.png

4.如何选择阿里云负载均衡产品

4.1对比传统型负载与应用型负载均衡
阿里云百科传统型负载均衡CLB应用型负载均衡ALB
产品定位强大的4层处理能力支持TCP/UTP/HTTP/HTTPS等协议主要面向网络交付强大的7层处理能力与丰富的高级路由功能聚焦HTTP、HTTPS和QUIC应用层协议面向应用交付
产品性能基于物理机架构最大连接数可达500万基于 NFV虚拟化平台单实例支持100万 QPS
运维能力按规格售卖需要预估业务峰值自动弹性处理能力随着业务峰值自动伸缩
云原生支持支持云原生业务场景云原生Ingress网关,支持流量拆分、镜像、灰度发布和蓝绿测试
典型应用场景场景1:网站/系统4层流量分发高可靠场景场景2:大并发高性能网络分流场景场景3:同城双活/跨地域容灾场景场景1:互联网应用7层高性能自动弹性场景场景2:音视频应用大流量低时延场景场景3:云原生应用金丝雀蓝绿发布场景

简而言之选择4层负载均衡选择SLB,选择7层负载均衡选择ALB

现在已有 0 条评论,0 人点赞
Comment
发表
搜 索 消 息 足 迹
你还不曾留言过..
你还不曾留下足迹..
博主