负载均衡
我们今天来学习一下负载均衡,我们学习的主要是阿里云的负载均衡。在学习之前我们来简单了解一下什么是负载均衡。
概述
负载均衡建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
上面的话可能你看不懂,不过没有关系我们来实质性的解析一下什么是负载均衡,首先通过负载我们可以很明确的知道,就是服务器在工作,那么对比我们自己,我们在工作的过程中是不是存在着有的人干得很多,事情积压的很多,但是有的人事情很少,举个例子,你和你媳妇一起工作,但是老板就把活交个你去做,那么你的工作量是不是很大,但是你媳妇是不是就闲置或者说很悠闲,这个时候你媳妇看不下去来了,过来分摊你的工作,那么这个就是一个负载均衡。当然了负载均衡不是连通器,负载均衡通货分流算法和一些其他算法实现的,有效的分摊服务器压力的一种方式。
不知这样你是否对负载均衡有了一个简单的理解。应用型负载均衡ALB
应用型负载均衡ALB(Application Load Balancer)是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务,具备超强弹性及大规模七层流量处理能力。ALB具备处理复杂业务路由的能力,与云原生相关服务深度集成,是阿里云官方提供的云原生Ingress网关。
ALB特性
弹性自动伸缩- ALB同时提供域名与VIP(Virtual IP address),支持对多台云服务器进行流量分发以扩展应用系统的服务能力,通过消除单点故障来提升应用系统的可用性。ALB允许您自定义可用区组合,并支持在可用区间弹性缩放,避免单可用区资源瓶颈。
先进的协议支持
- ALB支持先进的应用传输协议QUIC,在实时音视频、互动直播和游戏等移动互联网应用场景中,访问速度更快,传输链路更安全可靠。ALB同时支持gRPC框架,可实现海量微服务间的高效API通信。
基于内容的高级路由
- ALB支持基于HTTP标头、Cookie、HTTP请求方法等多种规则来识别特定业务流量,并将其转发至不同的后端服务器。同时ALB还支持重定向、重写以及自定义HTTPS标头等高级操作。
安全加持
- ALB自带分布式拒绝服务DDoS(Distributed Denial of Service)防护,一键集成Web应用防火墙(Web Application Firewall,简称WAF)。同时ALB支持全链路HTTPS加密,可以实现与客户端或后端服务器的HTTPS交互;支持TLS 1.3等高效安全的加密协议,面向加密敏感型业务,满足Zero-Trust新一代安全技术架构需求;支持预制的安全策略,您可以自定义安全策略。
云原生应用
- 在云原生时代,PaaS平台将下沉到基础设施,成为云的一部分。随着云原生逐步成熟,互联网、金融、企业等诸多行业新建业务时选择云原生部署,或对现有业务进行云原生化改造。ALB与容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称ACK)、Serverless应用引擎(Serverless App Engine,简称SAE)和开源K8s深度集成,是阿里云的官方云原生Ingress网关。
弹性灵活的计费
- ALB通过弹性公网IP(Elastic IP Address,简称EIP)和共享带宽提供公网能力,实现公网灵活计费;同时采用了更先进的、更适合弹性业务峰值的基于容量单位(LCU)的计价方案。
ALB得整体组成如下
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提供健康检查模板,可将健康检查模板快速地应用到不同的服务器组。
ALB类型
阿里云提供公网和私网两种类型的ALB。您可以根据业务场景选择配置对外公开或对内私有的ALB,系统会根据您的选择来决定是否使用共享带宽和弹性公网IP。
共享带宽 - 共享带宽提供地域级的带宽共享和复用能力,以及按带宽计费和按增强型95计费等多种计费模式,可有效节省公网带宽使用成本。公网ALB中将使用共享带宽来提供增强型95计费和按带宽计费能力。
域名
- 一个在公网(私网)上可解析的域名解析至对应的VIP。您也可以将所拥有的可读性强的域名通过CNAME方式解析到ALB的域名上来使用,具体操作,请参见设置CNAME域名解析。
EIP
- 您仅在创建公网ALB时需要使用EIP,在创建私网ALB时无需配置。ALB对公网服务的IP地址,一个公网ALB可以有多个EIP。为了实现高可用性,一个公网ALB至少应包含两个分布在不同可用区的EIP。
VIP
- ALB实施流量分发的实体。每个VIP都是专有网络VPC(Virtual Private Cloud)中的一个私网IP地址。
传统型负载均衡CLB
概述
- CLB通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能和高可用的后端服务池,并根据转发规则,将来自客户端的请求分发给后端服务器池中的ECS实例。
- CLB默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,CLB还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
组成部分
CLB由以下三个部分组成:
CLB实例 (Instances) - 一个CLB实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用负载均衡服务,您必须创建一个CLB实例,并至少添加一个监听和两台ECS实例。
监听 (Listeners) - 监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
后端服务器(Backend Servers) - 后端服务器是一组接收前端请求的ECS实例。您可以单独添加ECS实例到后端服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
产品优势 - 高可用
- 采用全冗余设计,无单点,支持同城容灾。
- 根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
- 可扩展
- 您可以根据业务的需要,随时增加或减少后端服务器的数量,扩展应用的服务能力。
- 低成本
- 与传统硬件负载均衡系统高投入相比,成本可下降60%。
- 安全
- 结合云盾,可提供5 Gbps的防DDoS攻击能力。
- 高并发
- 集群支持亿级并发连接,单实例提供千万级并发能力。
应用场景
应用于高访问量的业务
如果您的应用访问量很高,您可以通过配置监听规则将流量分发到不同的ECS实例上。此外,您可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS,提高访问效率。
扩展应用程序
您可以根据业务发展的需要,随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器。
消除单点故障
您可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后,负载均衡会自动屏蔽故障的ECS实例,将请求分发给正常运行的ECS实例,保证应用系统仍能正常工作。
同城容灾 (多可用区容灾)
为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地域部署了多可用区以实现同地域容灾。当主可用区出现机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(大约30s中断)切换到另外一个备可用区恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。
使用负载均衡时,您可以将负载均衡实例部署在支持多可用区的地域以实现同城容灾。此外,建议您结合自身的应用需要,综合考虑后端服务器的部署。如果您的每个可用区均至少添加了一台ECS实例,那么此种部署模式下的负载均衡服务的效率是最高的。
如下图所示,在负载均衡实例下绑定不同可用区的ECS实例。正常情况下,用户访问流量将同时转发至主、备可用区内的ECS实例;当可用区A发生故障时,用户访问流量将只转发至备可用区内的ECS实例。此种部署既可以避免因为单个可用区的故障而导致对外服务的不可用,也可以通过不同产品间可用区的选择来降低延迟。
如果您采取如下图所示的部署方案,即在负载均衡实例的主可用区下绑定多台ECS实例,而在备可用区没有任何ECS实例。当主可用区发生故障时会造成业务中断,因为备可用区没有ECS实例来接收请求。这样的部署方式很明显是以牺牲高可用性为代价来获取低延时。
跨地域容灾
您可以在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区的ECS。上层利用云解析做智能DNS,将域名解析到不同地域的负载均衡实例服务地址下,可实现全局负载均衡。当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响。
👍
💖
💯
💦
😄
🪙