目录
前言
一、SLB的概念
1.1 什么是负载均衡
1.2 负载均衡SLB发展过程
1.2.1 硬件设备来负载均衡的功能
1.2.2 Ali软件负载均衡SLB VS 传统硬件负载均衡器
1.3 负载均衡的主要作用
二、阿里云负载均衡SLB
2.1 阿里云负载均衡SLB的优点
2.2 负载均衡SLB应用场景
2.3 阿里云负载均衡SLB组成
2.4 SLB的产品优势
2.5 负载均衡中的概念/术语
2.6 SLB整体结构
三、SLB的原理
3.1 转发方式的工作原理
3.2 会话保持及权重设置的工作原理
3.3 负载均衡如何和云产品结合
3.4 SLB中的概念
3.4.1 监听
3.4.2 监听转发
编辑3.4.3 会话保持
3.4.4 SLB的后端服务器
3.4.5 健康检查
3.4.6 访问控制
3.5 SLB的计费和使用限制
四、总结
SLB的功能
思考题-ACP
负载均衡SLB相关问题
在软件系统的架构设计中,对集群的负载均衡设计是作为高性能系统优化环节中必不可少的方案。负载均衡本质上是用于将用户流量进行均衡减压的,因此在互联网的大流量项目中,其重要性不言而喻。
随着业务发展,我们对外提供的服务可能性能不达标,一台服务器可能无法满足业务的需求,为了解决这个问题,我们可能增加服务器的配置,但是服务器的配置(CPU,内存,硬盘)有上限,这时候就需要用到多台服务器提供同一个访问服务,这就是集群技术。
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(Elastic Compute Service,简称 ECS)的流量分发控制服务。
负载均衡服务通过设置虚拟服务地址,将位于同一地域的多台ECS实例虚拟成一个高性能、高可用的应用服务池;再根据应用指定的方式,将来自客户端的网络请求分发到云服务器池中。负载均衡服务是ECS面向多机方案的一个配套服务,需要同ECS结合使用。
负载均衡服务会检查云服务器池中ECS实例的健康状态,自动隔离异常状态的ECS实例,从而解决了单台ECS实例的单点问题,提高了应用的整体服务能力。在标准的负载均衡功能之外,负载均衡服务还具备TCP与HTTP抗DDoS攻击的特性,增强了应用服务的防护能力
传统IT
阿里云
负载均衡(SLB)使用最佳实践 :
https://yq.aliyun.com/articles/80055?spm=5176.100240.searchblog.26.3bIToO
负载均衡(阿里云帮助与文档):
https://help.aliyun.com/product/27537.html?spm=5176.doc27544.3.1.BZgTjy基础架构:
https://help.aliyun.com/document_detail/27544.html?spm=5176.7739444.6.540.BHXBo1技术原理:
https://help.aliyun.com/knowledge_detail/39444.html?spm=5176.100239.blogcont80055.19
健康检查原理:
https://help.aliyun.com/knowledge_detail/39455.html?spm=5176.100239.blogcont80055.20网络流量说明:
https://help.aliyun.com/knowledge_detail/39440.html?spm=5176.100239.blogcont80055.21高可用概要说明:
https://help.aliyun.com/knowledge_detail/39449.html?spm=5176.100239.blogcont80055.22
高并发:负载均衡通过算法调整负载,尽力均匀的分配应用集群中各节点的工作量,以此提高应用集群的并发处理能力(吞吐量)。
伸缩性:添加或减少服务器数量,然后由负载均衡进行分发控制。这使得应用集群具备伸缩性。
高可用:负载均衡器可以监控候选服务器,当服务器不可用时,自动跳过,将请求分发给可用的服务器。这使得应用集群具备高可用的特性。
安全防护:有些负载均衡软件或硬件提供了安全性功能,如:黑白名单处理、防火墙,防 DDos 攻击等。
同城容灾:同城容灾是指一个地域下不同的可用区,SLB是不能跨地域的,SLB可以提供可用区的高级可用,故障时自动切换
流量分发:对多台云服务器自动进行流量分发,扩展系统服务能力
简单易用:多种付费类型,计费模式与管理方式,可灵活轻松管理
超强性能:推出性能保障型实例,并提供超高性能规格的实例
可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提高应用系统的可用性。
负载均衡的应用场景为高访问量的业务,提供应用程序的可用性和可靠性
阿里云负载均衡SLB主要由3个基本概念组成:负载均衡器LoadBalancer,监听器Listener,后端服务器BackendServer
负载均衡服务Server Load Balancer:阿里云计算提供的一种网络负载均衡服务,可以结合阿里云提供的ECS服务为用户提供基于ECS实例的TCP、UDP与HTTP负载均衡服务
地域Region:代表资源所在并有效的地域,每个地域包含一组数据中心
可用区Zone:代表负载均衡所在的Zone
负载均衡实例Load Balancer:负载均衡实例可以理解为负载均衡服务的一个运行实例,用来接收流量并将其分配给后端服务器。用户要使用负载均衡服务,就必须先创建一个负载均衡实例,LoadBalancer是识别用户负载均衡实例的唯一标识。.
负载均衡服务监听Listener:负载均衡服务监听,包括监听端口,负载均衡策略和健康检查配置等
后端服务器BackendServer:接受负载均衡分发请求的一组云服务器,负载均衡服务将外部的访问请求按照用户设定的规则转发到这一组后端服务器上进行处理
服务地址Address:系统分配的服务地址,当前为IP地址。用户可以选择该服务地址是否对外公开,来分别创建公网和私网类型的负载均衡
负载均衡基础架构是采用集群部署,提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。
SLB基本架构图
阿里云当前提供四层和七层的负载均衡服务。
选择四层or七层
会话保持:开启会话保持后,负载均衡会把来自同一个客户端的请求分配到同一台后端服务器上,提高访问效率
权重设置:访问请求按权重大小依次分发
云解析企业版(智能DNS):提供丰富的智能解析策略,合理调度来自不同线路用户的入站访问量,后续还支持根据地域调度访问流量和健康检查,实现跨地域负载均衡或全局负载均衡
云服务器ECS:挂载同地域Region的ECS,可实现流量分发和消除单点故障
云盾:结合云盾实现DDoS防护,包括清洗和黑洞
弹性伸缩服务:结合弹性伸缩服务可以做到弹性扩容
对象存储OSS,数据库RDS:用户通过ECS上的应用,可访问OSS,RDS,Memcache等应用。用户也可以直接在ECS上部署DB等应用,通过SLB做负载均衡。
创建负载均衡实例后,需要为实例配置监听。负载均衡实例监听负责检查连接请求,然后根据调度算法定义的转发策略将请求分发至后端服务器。负载均衡提供四层(TCP/UDP协议)和七层(HTTP/HTTPS协议)监听,可根据应用场景选择监听协议:
HTTPS是加密数据传输协议,安全性高。负载均衡支持将HTTP访问重定向至HTTPS,方便进行全站HTTPS部署。负载均衡已经在全部地域开放了HTTPS重定向功能。
负载均衡是可以设置会话保持功能的。如果开启会话保持,在超时时间范围内,会将同一请求转发给后端同一台服务器;如果过了超时时间,就会重新选择后端服务器。如果负载均衡本身请求流量较小,就会显得分发不那么均衡。所以如果是要做压力测试,建议先关闭会话保持测试。压力测试可以测试负载均衡的性能如何。
在使用负载均衡服务前,需要添加ECS实例作为负载均衡实例的后端服务器,用来接收负载均衡监听转发的请求。负载均衡服务通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能,高可用的应用服务池。也可以通过虚拟服务器组管理后端服务器。
可以在任意时刻增加或减少负载均衡实例的后端ECS数量,确保开启了负载均衡的健康检查功能并同时保证负载均衡实例中至少有一台正常运行的ECS。添加后端服务器时,要注意:
统计一个时间段内,后端ECS实例的Web服务访问日志记录数据量
按照负载均衡的配置,对比多台ECS实例日志的数量是否有相差。开启会话保持后,需要剥离相同IP的访问日志。如果负载均衡配置了权重,需要根据权重比例计算日志中访问比例是否正常。
后端服务器组分类
默认服务器组:用来接收前端请求的ECS实例。如果监听没有设置虚拟服务器组或主备服务器组,默认将请求转发至默认服务器组中的ECS。
主备服务器组:一个主备服务器组只包括两台ECS实例,一台作为主服务器,一台作为备服务器。由于备服务器不会做健康检查,所以只要主服务器健康检查失败,系统会直接将流量切到备服务器。当主服务器健康检查成功恢复服务后,流量会自动切到主服务器。备机一直不工作,除非主机坏了,备机才工作
虚拟服务器组:当需要将不同的请求转发到不同的后端服务器上时,或需要通过域名和URL进行请求转发时,可以选择虚拟服务器组。
负载均衡通过健康检查来判断后端服务器(ECS实例)的业务可用性。健康检查机制提高了前端业务整体可用性,避免了后端ECS异常对总体服务的影响。
开启健康检查功能后,当后端某台ECS健康检查出现异常时,负载均衡会自动将新的请求分发到其它健康检查正常的ECS上;而当该ECS恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中。
SLB四层和七层健康检查机制如下:
负载均衡提供监听级别的访问控制。可以针对不同的监听设置访问白名单和黑名单。
SLB的计费
SLB提供两种计费模式:按量付费和预付费。
SLB的计费项包括实例费,流量费,带宽费,规格费。注意无论是公网还是私网,公网中无论是按流量还是按带宽,性能保障型都会收取规格费。私网只收取规格费。
调度算法:负载均衡支持轮询,加权轮询(WRR),加权最小连接数(WCL)和一致性哈希(CH)调度算法
健康检查:负载均衡会检查后端服务器的运行状况。当探测到后端服务器运行状况不佳时,会停止向其发送流量,然后将流量转发给其它正常运行的后端服务
会话保持:负载均衡提供会话保持功能。在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上
访问控制:负载均衡支持添加黑名单和白名单,灵活控制客户端访问
高可用:负载均衡可以将流量转发给多个可用区的后端服务器。并且,负载均衡已经在大部分地域支持了多可用区部署,当主可用区出现故障时,负载均衡可自动切换到备可用区上提供服务
安全防护:结合云盾,可提供5Gbps的防DDoS攻击能力