云计算 | 负载均衡入门以及使用教程
负载均衡(Server Load Balancer)是将访问流量根据转发策略分发到后端多台云服务器(ECS实例)的流量分发控制服务。负载均衡扩展了应用的服务能力,增强了应用的可用性。
负载均衡通过设置虚拟服务地址,将添加的ECS实例虚拟成一个高性能、高可用的应用服务池,并根据转发规则,将来自客户端的请求分发给云服务器池中的ECS实例。
负载均衡默认检查云服务器池中的ECS实例的健康状态,自动隔离异常状态的ECS实例,消除了单台ECS实例的单点故障,提高了应用的整体服务能力。此外,负载均衡还具备抗DDoS攻击的能力,增强了应用服务的防护能力。
关于负载均衡更加详细的内容:负载均衡入门与产品使用指南
(课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法)
组成部分:
负载均衡由以下三个部分组成:
-
负载均衡实例 (Server Load Balancer instances)
一个负载均衡实例是一个运行的负载均衡服务,用来接收流量并将其分配给后端服务器。要使用服负载均衡服务,您必须创建一个负载均衡实例,并至少添加一个监听和两台ECS实例。
-
监听 (Listeners)
监听用来检查客户端请求并将请求转发给后端服务器。监听也会对后端服务器进行健康检查。
-
后端服务器(Backend Servers)
一组接收前端请求的ECS实例。您可以单独添加ECS实例到服务器池,也可以通过虚拟服务器组或主备服务器组来批量添加和管理。
如下图所示,来自客户端的请求经过负载均衡实例后,监听会将请求根据配置的监听规则分发给后端添加的ECS实例处理。
产品优势:
-
高可用
采用全冗余设计,无单点,支持同城容灾。搭配DNS可实现跨地域容灾,可用性高达99.95%。
根据应用负载进行弹性扩容,在流量波动情况下不中断对外服务。
-
低成本
与传统硬件负载均衡系统高投入相比,成本可下降60%。
-
安全
阿里云对开源四层负载均衡LVS的管理软件Keepalived进行了全面优化,使得基于LVS的四层负载均衡具备接近于实时防御的能力。结合云盾,可提供5G以下的防DDOS攻击能力。
采用Tengine作为负载均衡基础模块的七层负载均衡具备多维度的CC攻击防御能力。
基础架构
负载均衡采用集群部署,可实现会话同步,以消除服务器单点故障,提升冗余,保证服务的稳定性。阿里云当前提供四层(TCP协议和UDP协议)和七层(HTTP和HTTPS协议)的负载均衡服务。
-
四层采用开源软件LVS(Linux Virtual Server)+ keepalived的方式实现负载均衡,并根据云计算需求对其进行了个性化定制。
-
七层采用Tengine实现负载均衡。Tengine是由淘宝网发起的Web服务器项目,它在Nginx的基础上,针对有大访问量的网站需求,添加了很多高级功能和特性。
如下图所示,各个地域的四层负载均衡实际上是由多台LVS机器部署成一个LVS集群来运行的。采用集群部署模式极大地保证了异常情况下负载均衡服务的可用性、稳定性与可扩展性。
LVS集群内的每台LVS都会进行会话,通过组播报文同步到该集群内的其它LVS机器上,从而实现LVS集群内各台机器间的会话同步。如下图所示,当客户端向服务端传输三个数据包后,在LVS1上建立的会话A开始同步到其它LVS机器上。图中实线表示现有的连接,图中虚线表示当LVS1出现故障或进行维护时,这部分流量会走到一台可以正常运行的机器LVS2上。因而负载均衡集群支持热升级,并且在机器故障和集群维护时最大程度对用户透明,不影响用户业务。
注意:对于连接未建立(三次握手未完成),或者已建立连接但未触发会话同步机制,热升级不保证连接不中断,需要依靠客户端重新发起连接。
使用场景
负载均衡主要应用于以下场景中:
场景一:应用于高访问量的业务
如果您的应用访问量很高,您可以通过配置监听规则将流量分发到不同的ECS实例上。此外,您可以使用会话保持功能将同一客户端的请求转发到同一台后端ECS,提高访问效率。
场景二:横向扩张系统
您可以根据业务发展的需要,通过随时添加和移除ECS实例来扩展应用系统的服务能力,适用于各种Web服务器和App服务器。
场景三:消除单点故障
您可以在负载均衡实例下添加多台ECS实例。当其中一部分ECS实例发生故障后,负载均衡会自动屏蔽故障的ECS实例,将请求分发给正常运行的ECS实例,保证应用系统仍能正常工作。
场景四:同城容灾 (多可用区容灾)
为了提供更加稳定可靠的负载均衡服务,阿里云负载均衡已在各地域部署了多可用区以实现同地域容灾。当主可用区出现机房故障或不可用时,负载均衡仍然有能力在非常短的时间内(大约30s中断)切换到另外一个备可用区恢复服务能力;当主可用区恢复时,负载均衡同样会自动切换到主可用区提供服务。
使用负载均衡时,您可以将负载均 3ff7 衡实例部署在支持多可用区的地域以实现同城容灾。此外,建议您结合自身的应用需要,综合考虑后端服务器的部署。如果您的每个可用区均至少添加了一台ECS实例,那么此种部署模式下的负载均衡服务的效率是最高的。
如下图所示,在负载均衡实例下绑定不同可用区的ECS实例。正常情况下,用户访问流量将转发至主可用区内的ECS实例;当可用区A发生故障时,用户访问流量将转发至备可用区内的ECS实例。此种部署既可以避免因为单个可用区的故障而导致对外服务的不可用,也可以通过不同产品间可用区的选择来降低延迟。
如果您采取如下图所示的部署方案,即在负载均衡实例的主可用区下绑定多台ECS实例,而在备可用区没有任何ECS实例。当主可用区发生故障时会造成业务中断,因为备可用区没有ECS实例来接收请求。这样的部署方式很明显是以牺牲高可用性为代价来获取低延时。
场景五:跨地域容灾
您可以在不同地域下部署负载均衡实例,并分别挂载相应地域内不同可用区的ECS。上层利用云解析做智能DNS,将域名解析到不同地域的负载均衡实例服务地址下,可实现全局负载均衡。当某个地域出现不可用时,暂停对应解析即可实现所有用户访问不受影响。
阿里云开发者社区全面升级,一站式体验,用得更爽:(阿里云开发者社区首页)
- CentOS7 下Docker最新入门教程 超级详细 (安装以及简单的使用)
- Android greenDao入门以及使用教程
- CXF使用教程(一)——简介以及入门案例
- (转载)directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- RabbitMq入门以及使用教程
- ReportStudio入门教程(七十三) - 计算占比(使用total)
- gulp的使用以及Gulp新手入门教程
- directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- ReportStudio入门教程(七十四) - 计算占比(使用percentage)
- swoole入门教程02-Swoole的Task使用以及swoole_client
- directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- gulp的使用以及Gulp新手入门教程
- directshow的下载、VC2008中的配置、入门教程以及如何在opencv中使用
- 分享录制的正则表达式入门、高阶以及使用 .NET 实现网络爬虫视频教程
- Ant的入门级教程(1)?ANT 蚂蚁是什么?带有简单使用。
- javascript入门系列演示·函数的定义以及简单参数使用,调用函数
- Subversion使用入门教程
- GMP大数库VC使用入门教程
- phpMyAdmin下载、安装和使用入门教程
- JSP入门初级教程之Session的使用