负载均衡:高并发网关设计原理与实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.2.1 负载均衡的作用

本节会对负载均衡的一些应用场景进行简单探讨,在此之前,我们先通过用户访问网络服务的实例来大致了解一下负载均衡在用户访问服务过程中起到的作用。

图1-3所示为使用负载均衡服务前后用户访问网络服务的整个过程。

图1-3 用户访问网络服务的整个过程

1.使用负载均衡服务前

首先,用户根据域名发起连接请求,通过DNS域名解析获取域名对应的后端应用服务器的IP地址。

然后,用户向网站服务器端发起HTTP/HTTPS请求。请求会直接进入DNS解析出来的后端应用服务器。后端应用服务器接到请求后,会解析用户HTTP请求,完成业务处理后再将HTTP请求响应返回用户。

2.使用负载均衡服务后

首先,用户根据域名发起连接请求,通过DNS域名解析获取域名对应的后端应用服务器的IP地址。若部署了CDN,则此过程会由全局负载均衡的DNS进行域名解析,并通过CDN将IP地址返回缓存服务器。

其次,用户向网站服务器端发起HTTP/HTTPS请求。请求到达数据中心核心层后,由这里部署的负载均衡服务器(Load Balancer,LB)进行处理,该负载均衡服务器通常是Linux虚拟服务器(Linux Virtual Server,LVS)。LB根据不同的算法,将请求分流至后端集群中的服务器。这里有两种不同的路径处理方式:一种是进入代理集群;另一种是进入应用服务集群。这两种路径分别属于前文提到的四层负载均衡器和七层负载均衡器。

然后,进入代理集群。这是为了使用代理的各种高级特性,如反向代理、SSL Offloading、日志收集、缓存、自定义负载均衡等。代理集群通常采用Nginx部署,再由代理做负载均衡,将访问流量均衡到后端应用服务集群。

之所以直接进入后端应用服务集群,主要是为了避免代理集群增加额外的操作和路径而导致响应时间变长。所以,针对大流量业务,为了得到更快的响应,会由顶层LB直接连接到后端应用服务集群。

后端应用服务器接到请求后,会解析用户HTTP请求,完成业务处理后再返回HTTP请求响应给用户。

通过上面的实例我们可以看到,使用负载均衡服务前,域名解析到的服务器一旦宕机,就会使得服务不可用。在服务器前端使用负载均衡服务后,可以横向扩展服务。这样,当某台后端应用服务器宕机时,负载均衡设备就会将请求分配给该服务所在后端集群中的其他可用服务器,实现服务的高可用性。