其实在工作当中,负载均衡这个名字我们耳熟能详,无论是链路级负载还是服务器级负载,实现这些功能的都统归为负载均衡设备,例如:F5、Netscaler、Nginx、LVS等,那么今天的文章围绕几个点来展开讲解阿里云的负载均衡产品(SLB)。
什么是负载均衡(Server Load Balancer)?
官话:将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
简短总结:将流量转向你想要的转到的一组服务器或者单台服务器上。
负载均衡的构成?
监听器(Listeners):监听后端服务器端口,同时对外提供访问端口(两者端口可以不同)
后端服务器(Backend Servers):接收负载均衡转发的访问请求的单台或一组服务器。
产品优势
- 高可用,SLA三个9
- 扩展性强,随时增加或者减少后端服务器数量
- 高并发,官方给出支持亿级并发(这个咱也没这么大访问量,无从得知,囧)
其他的我觉得不算优势,例如成本,这个是因业务而异
产品架构
链路层采用LVS(Linux Virtual Server)+Keepalived的方式实现。
应用层采用Tengine实现。(Tengine是淘宝在Nginx的基础上针对高并发增加、优化了一些功能)
流量访问图
主要功能特性
- 调度算法:目前支持轮询、加权轮询(WRR)、加权最小连接数(WLC)和一致性哈希(CH)
- 健康检查:无代答功能,当健康检查失败,业务出现异常
- 会话保持:在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上。
- 访问控制:支持白名单功能
- 域名URL转发:支持配置域名和URL转发规则,可以将来自不同域名和URL的请求转发到不同的后端服务器上。
- 重定向:支持HTTP访问重定向至HTTPS。
- HTTP/2支持
使用注意点
- 采用私网SLB,只能添加同网段的ECS,无法跨网段添加,公网SLB无限制
- 私网SLB访问外网需要申请绑定EIP,才能访问外网
- 健康检查未通过,业务此时为异常,如果为HTTP/HTTPS业务需要和业务人员核对检查路径是否正确,否则业务无法生效
- 目前支持TCP、HTTP、HTTPS三种模式的负载
- 有需要制定不同的监听后端的同一接口,请采用虚拟服务器组,例如,监听1对应后端接口80,监听2对应后端接口80
写在最后
好的最佳实践一定是基于你的业务场景不断的磨合才能够给出,每个企业环境的不同,导致参数的设置不同,文章不可能以偏概全,而是了解,再去大量的实践,得出适合你的方案。
(实战会放在视频里)