阿里云SLB负载均衡产品基本介绍与购买
1.SLB负载均衡产品核心概念
1.1.SLB负载均衡基本概念
SLB—CLB官方文档:https://help.aliyun.com/document_detail/27539.html
传统型负载均衡SLB,现更名为CLB(Classic Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。CLB扩展了应用的服务能力,增强了应用的可用性。
SLB负载均衡就类似于我们常用的Nginx负载均衡,将用户的流量请求根据不同的转发规则分别分发到多台后端应用程序,提高网站的并发量。
SLB的组成部分
- SLB实例
- 一个SLB实例运行一个负载均衡服务,用来接收用户的流量请求,然后将请求分别转发到后端多台应用服务器,我们再使用负载均衡之前,必须创建一个SLB实例,并添加后端ECS云服务器。
- 相当于Nginx的server{}
- 监听
- 监听用来检查客户端请求并将请求转发给后端服务器,监听也会对后端服务器进行健康检查。
- 也就是声明使用的端口号,相当于Nginx的server { listen 80; }
- 后端服务器
下面这张图就是SLB的组成部分,首先需要购买一个SLB实例,然后声明监听端口,最后和ECS进行绑定。
1.2.SLB更名为CLB
随着应用型负载均衡ALB(Application Load Balancer)的引入,原负载均衡SLB(Server Load Balancer)现称为传统型负载均衡CLB(Classic Load Balancer),负载均衡SLB为负载均衡产品家族的总称。
负载均衡SLB产品家族包含:应用型负载均衡ALB、传统型负载均衡CLB,如下图所示。
最主要的就是因为ALB的诞生,ALB是针对云原生的ingress的负载均衡器,有了云原生的诞生,为了区别于传统负载均衡,就将SLB更名为CLB,然后将所有的负载均衡统称为SLB。
1.3.CLB负载均衡高可用
负载均衡实例采用集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。其中四层负载均衡通过LVS(Linux Virtual Server)+ keepalived的方式实现,七层负载均衡通过Tengine(淘宝网发起的Web服务器项目,在Nginx的基础上,针对有大访问量的网站需求进行了优化)实现。
为了向广大用户提供更稳定可靠的负载均衡服务,阿里云负载均衡已在大部分地域部署了多可用区以实现同地域下的跨机房容灾。当主可用区出现故障或不可用时,负载均衡有能力在非常短的时间内(约30秒)切换到备可用区并恢复服务;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。
1)单CLB实例的高可用
阿里云为了提高负载均衡的稳定性,我们在可用区A中购买了一个CLB实例,阿里云会在同一地域随机可用区中也启动一个CLB实例,充当可用区A中CLB的备用实例,当可用区A产生故障时,备用CLB负载均衡会在非常短的时间内进行切换,由备用CLB提供服务,当可用区A恢复时,负载均衡会自动切换回可用区A提供服务。
如下图:我们购买了一个CLB实例,实际上是两个,主CLB在可用区A中提供服务,备用CLB在可用区B中运行,我们的ECS也就意味着不能再同一个可用区运行了,如果我们的ECS都在可用区A中运行,一旦可用区A出现了故障,备用CLB虽然得到了切换,但是我们可用区B中没有提供服务的ECS,可用区B也连不上可用区A,此时就会造成服务无法访问,为了保证故障切换后备用CLB也能正常提供服务,我们也需要将一部分ECS运行在可用区B中,当备用CLB开始工作后,就可以向可用区B中的ECS转发请求。
2)多CLB实例的高可用
如果多应用程序可用性的要求很高,就可以采用多CLB实例的高可用,在多个地域分别创建CLB负载均衡实例以及多台ECS实例,根据DNS的轮询策略,将请求转发到离用户最近的CLB实例上,即使因为某个地域网络故障或者中毒,请求也会被转发到其他地域的CLB中,实现应用程序的高可用。
如下图:这个图是不全面的,应该讲上图中的备用节点也画在图中,多CLB高可用,即使某一个地域的CLB故障也会有备用CLB接替工作,当整个地域都不可用时,还有另一个地域的CLB提供着相同的服务。
3)后端ECS实例高可用
后端ECS实例高可用也就是WEB节点高可用,就是多增加几台WEB节点接入到CLB即可。
1.4.SLB负载均衡产品架构图
1)SLB产品架构图
负载均衡目前阿里云提供四层和七层的转发。
我们通过阿里云控制台管理负载均衡实例,四层流量请求首先会被转发到LVS集群,然后被转发到对应的ECS实例,七层流量请求也会被转发到LVS集群,有LVS集群根据对应的调度算法,将请求转发到Tengine集群,再由Tengine集群将请求分发给不同的ECS实例。
七层请求为什么还有经过四层LVC?原因是当我们流量很大时如1000w,一个Tengine节点能够承受10w并发,虽然我们可以增加很多个节点,但是这么多个节点流量应该进入哪个Tengine呢,此时就需要一个四层设备来管控,也就是流量首先进入到LVC,由LVS根据调度算法,将请求分发给Tengine,再由Tengine具体处理请求,LVS是没有并发限制的,通过内核进行数据交换,性能非常强大。
2)入网流量图
四层请求:首先请求到达核心路由器,将请求转发给LVS集群,再由LVS将请求转发到对应的ECS实例。
七层请求:首先请求到达核心路由器,路由器将请求转发到LVS集群,由LVS将请求转发到Tengine集群,Tengine根据请求的协议类型,如果是HTTP那么直接将请求转发到后端ECS,如果协议类型为HTTPS,请求就会被转发到证书服务器,最后再将请求转发到ECS。
出网流量:怎么进入的就怎么出去。
1.5.负载均衡产品的功能特性
功能 | 4层CLB | 7层CLB |
---|
调度算法CLB支持轮询、加权轮询(WRR)和一致性哈希(CH)调度算法。 | ? | ?说明 七层CLB暂不支持一致性哈希(CH)调度算法。 | 健康检查CLB会检查后端服务器的运行状况。当探测到后端服务器运行状况不佳时,会停止向其发送流量,然后将流量转发给其他正常运行的后端服务器。 | ? | ? | 会话保持CLB提供会话保持功能。在会话的生命周期内,可以将同一客户端的请求转发到同一台后端服务器上。 | ? | ? | 访问控制CLB支持添加黑名单和白名单,灵活控制客户端访问。 | ? | ? | 高可用CLB可以将流量转发给多个可用区的后端服务器。并且,CLB已经在大部分地域支持了多可用区部署,当主可用区出现故障时,可自动切换到备可用区上提供服务。 | ? | ? | 安全防护结合云盾,可提供5 Gbps的防DDoS攻击能力。 | ? | ? | 网络类型支持CLB提供公网和私网类型的负载均衡服务。您可以创建一个私网类型的CLB实例来均衡专有网络内的流量,或创建一个公网CLB实例来均衡来自公网的流量。 | ? | ? | 监控结合阿里云云监控服务,您可以查看CLB的连接数、流量等信息。 | ? | ? | IPv6地址支持CLB支持转发来自IPv6客户端的请求。 | ? | ? | 记录健康检查日志CLB默认存储三天内的健康检查日志。您可以通过开通OSS服务,将所有的健康检查日志存储到OSS中,分析后端服务器异常原因。 | ? | ? | 域名URL转发CLB7层监听支持配置域名和URL转发规则,可以将来自不同域名和URL的请求转发到不同的后端服务器上。 | — | ? | 证书管理针对HTTPS协议,提供统一的证书管理服务。证书无需上传到后端服务器,解密处理在CLB上进行,降低后端服务器的CPU开销。 | — | ? | SNI支持CLB HTTPS监听支持挂载多个证书,将来自不同访问域名的请求转发至不同的后端服务器组。 | — | ? | 重定向CLB支持HTTP访问重定向至HTTPS。 | — | ? | WS/WSS原生支持WebSocket是HTML5一种新的协议,在客户端与服务器间提供双向通信渠道,能更好地节省服务器资源和带宽并达到实时通讯。 | — | ? | HTTP 2.0原生支持HTTP 2.0(Hypertext Transfer Protocol Version 2)是超文本传输协议的第二版,向下兼容HTTP 1.X协议版本,同时带来性能的大幅提升。 | — | ? |
1.6.负载均衡产品的应用场景
- 应用于高访问量的业务
- 扩展应用程序
- 消除单点故障
- 同城容灾 (多可用区容灾)
- 跨地域容灾
2.购买CLB传统型负载均衡
一个CLB实例可以配置多个负载均衡,但是端口只能是唯一的,一个CLB负载均衡只能提供一个80端口,因此不同的应用程序需要购买多个SLB产品。
在阿里云控制台中找到负载均衡产品,进入负载均衡产品的控制台。
2.1.创建负载均衡CLB实例
2.2.设置CLB属性
付费模式选择按量付费,地域选择华北2,与ECS在同一个地域,如果我们的ECS需要使用公网IP,那么必须分配一个有IPV4公网地址的可用区,可用区A已经没有IPV4公网地址了,这里选择可用区G,可用区类型选择多可用区,备用可用区也需要选择能分配IPV4公网地址的可用区,这里选择可用区H。
设置实例的名称为负载均衡器,实例规格为简约型,实例类型为公网,IP版本为IPV4,计费方式为按流量计费,最后点击立即购买。
确认订单信息,立即开通。
2.3.查看购买的CLB产品
在实例管理这里就可以看到所有购买的CLB实例。
|