SLB负载均衡
文章目录
负载均衡SLB
1 SLB定义
是将访问流量根据转发策略分发到后端多台云服务器ECS实例的流量分发控制服务
负载均衡扩展了应用的服务能力,增强了应用的可用性
2 工作流程
通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能、高可用的后端服务池,并根据转发原则,将来自客户端的请求分发给后端服务器池中的ECS实例
3 基础架构
集群部署
提供四层传输层 TCP UDP协议
提供七层应用层 HTTP HTTPS协议的负载均衡
可实现会话同步消除服务器单点故障,提升冗余,保证服务的稳定性
4 功能概述
协议支持:四层和七层协议的负载均衡
健康检查:自动屏蔽异常状态的ECS实例,等正常后再解除
会话保持:将同一客户端的会话请求转发到同一台后端ECS实例
调度算法:支持轮询 加权轮训WRR 加权最小连接数WLC 一致性哈希CH(7层不支持)
证书:PEM格式的证书
URL转发:支持按用户访问的域名和URL来转发流量到不同的虚拟服务器组
访问控制:支持添加黑名单和白名单,控制访问
支持内网和外网类型的负载均衡
结合监控,可查看负载均衡的连接数、流量等信息
5 SLB算法解析
轮询 后端ECS服务能力相同时,将请求依次分发给后端ECS,避免分发不均导致其中一台提前饱和
加权轮询 后端ECS服务能力不同时,根据服务能力不同按权重分配请求,保证后端ECS利用率保持在相同的级别
加权最小连接数 在加权轮询的基础上,还会判定当前哪台服务器的连接数比较小,优先分发请求到这台服务器
6 产品优势
- 高可靠
- 全冗余设计,无单点,支持同城容灾
- 搭配DNS轮询可实现跨地域容灾
- 根据负载情况弹性扩容,流量波动下不中断服务
- 可扩展
- 根据需要,随时增加减少后端服务器的数量,扩展服务能力
- 低成本
- 与传统相比,成本下降60%
- 安全
- 结合云盾,可提供5Gbps的防DDoS攻击能力
- 高并发
- 集群支持亿级并发连接,单实例提供千万级并发能力
7 应用场景
-
高访问的业务
- 配合监听规则将流量分发到不同的ECS实例
-
扩展应用程序
- 随时添加和移出ECS实例来扩展应用系统的服务能力
-
消除单点故障
- 自动屏蔽故障实例
-
同城容灾
- 在各地域部署了多可用区实现同地域容灾
8 组成部分
8.1 负载均衡实例Load Balancer
运行的**负载均衡服务Server Load Balancer**,用来接收流量并将其分配给后端服务器
必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例
8.2 监听Listenr
包括监听端口、负载均衡策略和健康检查配置等
用来检查客户端请求并将请求转发给后端服务器,对后端服务器进行健康检查
8.3 后端服务器 Backend Server
一组接收前端请求的ECS实例
可以单独添加ECS实例到后端服务器池
也可以通过虚拟服务器组或主备服务器组来批量添加管理
9 实例规格
9.1 性能共享型实例
资源所有实例共享,不保障实例的性能指标
9.2 性能保障型实例
三个关键指标
- 最大连接数 Max Connection
实例上的连接超过规格定义的最大连接数时,新建连接请求将被丢弃
- 每秒新建连接数 Connection Per Second CPS
新建连接的速率超过规格定义的每秒新建连接数时,新建连接请求将被丢弃
- 每秒查询数 Query Per Second QPS
每秒请求数是七层监听特有的概念,当请求速率超过规格所定义的每秒查询数时,新建连接请求将被丢弃
10 SLB监听
创建实例后,需要配置监听
其负责检查连接请求,然后根据调度算法定义的转发策略将请求流量分发至后端服务器
11 会话保持
四层TCP:同一IP地址的请求持续发往一台服务器
**七层HTTP:**基于cookie,可以分为植入cookie和重写cookie
相同cookie同的请求发往一台服务器
如果开启会话保持
- 超时时间范围内,会将同一请求转给后端同一台服务器
- 如果过了超时时间,就会重新选择后端服务器
- 如果本身请求流量较小,就会显得分发不那么均衡
- 如果要做压力测试,建议先关闭会话保持测试
12 后端服务器
后端服务器用来接收负载均衡监听转发的请求
通过设置虚拟服务地址,将添加的同一地域的多台ECS实例虚拟成一个高性能、高可用的应用服务池
- 任意时刻都能增加减少负载均衡实例的后端ECS数量
- 确保开起来负载均衡的健康检查功能并同时保证负载均衡实例中至少有一台正常运行的ECS
注意事项
负载均衡**不支持跨地域部署**,确保所属地域和负载均衡实例所属地域相同
负载均衡不会限制后端ECS实例使用哪种操作系统
一个负载均衡实例最多支持50个监听,每个监听对应后端实例上一个应用
可以指定后端服务器池内各实例的转发权重,权重越高分配到更多的访问请求
同时开启会话保持功能,可能造成后端服务器的访问并不是完全相同
ECS进行热迁移时,可能导致SLB长连接断开,重新连接后即可恢复,请做好应用的重连工作
请求不均匀时,以下方法可以检查处理
- 统计一个时间段内,后端ECS实例的Web服务访问日志记录数据量
- 按照负载均衡的配置,对比多台ECS实例日志的数量是否有相差
13 SLB健康检查
开启后
-
后端某台ECS健康检查出现异常时,负载均衡会自动将新的请求分发到其他健康检查正常的ECS上
-
当该ECS恢复正常运行时,负载均衡会将其自动恢复到负载均衡服务中
为了避免频繁的健康检查失败引起的切换对系统的可用性的冲击,健康检查只有在健康检查时间窗内连续多次检查成功或失败后,才会进行状态切换
- 健康检查间隔
- 响应超时时间,等待服务器返回健康检查的时间
- 检查阈值,检查连续成功或失败的次数
- 健康检查失败时间窗=响应超时时间×不健康阈值+检查间隔×(不健康阈值-1)
- 健康检查成功时间窗=(健康检查成功响应时间×健康阈值)+检查间隔×(健康阈值-1)
14 SLB证书管理
14.1 证书格式
CA机构颁发的证书
1.以-----BEGIN CERTIFICATE-----,-----END CERTIFICATE-----开头和结尾;请将这些内容一并上传,一次只可以上传一份证书
2.每行64个字符,最后一行长度可以不租64个字符
3.证书内容不能包含空格
中级机构颁发的证书
1.服务器证书放第一位,中级证书放第二位,中间不能有空行
2.证书内容不能包含空格
3.证书之间不能有空行,并且每行64字节
4.符合证书的格式要求
负载均衡只支持PEM格式的证书,其他格式的证书需要转换成PEM格式后,才能上传到负载均衡
14.2 访问控制
针对不同的监听设置访问白名单或黑名单
白名单
- 仅转发来自所选访问控制策略组中设置的IP地址或地址段的请求
- 白名单适用于应用只允许特定IP访问的情景
黑名单
- 来自所选访问控制策略组中设置的IP地址或地址段的所有请求都不会转发
- 适用于应用只限制某些特定IP访问的场景
15 SLB使用限制
16 SLB产品计费
17 SLB与其他产品
-
云解析智能DNS
- 提供丰富的智能解析策略,合理调度来自不同线路用户的入站访问流量,后续还支持根据地域调度访问流量和健康检查,实现跨地域负载均衡或全局负载均衡
-
云服务器ECS
- 挂载同地域的ECS,可实现流量分发和消除单点故障
-
云盾
- 结合云盾实现DDoS防护
-
弹性伸缩服务
- 结合弹性伸缩服务可以做到弹性扩容
-
对象存储OSS 数据库RDS
- 用户可通过ECS,访问OSS RDS 也可以直接在ECS上部署DB等应用
-
云解析智能DNS
- 提供丰富的智能解析策略,合理调度来自不同线路用户的入站访问流量,后续还支持根据地域调度访问流量和健康检查,实现跨地域负载均衡或全局负载均衡
-
云服务器ECS
- 挂载同地域的ECS,可实现流量分发和消除单点故障
-
云盾
- 结合云盾实现DDoS防护
-
弹性伸缩服务
- 结合弹性伸缩服务可以做到弹性扩容
-
对象存储OSS 数据库RDS
- 用户可通过ECS,访问OSS RDS 也可以直接在ECS上部署DB等应用