应用服务器负载均衡
#
目标- 实现系统处理客户端高并发请求的能力
- 实现系统的高容错性
- 实现系统处理客户端高并发请求能力的可扩展性
#
前提本章节所讲的处理能力是指应用服务器的运算能力,不包括网络数据吞吐量、数据读写速度等方面的能力。
#
实现原理为提高系统处理高并发请求的能力,并实现可扩展,需要部署多台应用服务器,并通过负载均衡服务器将客户端请求分发到后端的应用服务器上。
如上图所示,应用服务器#1~应用服务器#n拥有相同的处理逻辑。客户端请求首先发送给负载均衡服务器,负载均衡服务器再根据特定的规则将请求分发到特定的应用服务器。
转发规则可以是轮询,即将请求依次转发给各个应用服务器,或根据客户端 IP 的 Hash 值将来自同一个客户端的请求转发给特定的应用服务器。
当负载均衡服务器接收到来自客户端的大量并发请求时,这些请求将被分发给不同的应用服务器,从而减轻了单台应用服务器对客户端并发请求的处理压力,提高了系统整体处理客户端并发请求的能力。
当一部分应用服务器发生故障而无法处理客户端请求时,负载均衡服务器会略过发生故障的应用服务器,继续将客户端请求转发给其他应用服务器,从而实现系统的容错性。
当系统处理客户端并发请求的能力达到上限时,可以通过增加应用服务器的方式提高系统处理客户端并发请求的能力。
#
NginX 配置假设有如下服务器实例
内网 IP 地址 | 用途 | 域名 | 服务进程及端口 |
---|---|---|---|
10.0.0.1 | 负载均衡服务器 | api.proding.net | nginx:80 |
10.0.0.2 | 应用服务器#1 | node:3000 | |
10.0.0.3 | 应用服务器#2 | node:3000 | |
10.0.0.4 | 应用服务器#3 | node:3000 |
负载均衡服务器的 NginX 配置