作者:Eddy 历史版本:1 最后编辑:龚清 更新时间:2024-05-27 11:07
后端网关服务
后端网关服务的负载均衡、集群、高可用
概念
1)负载均衡(load balance)
它是根据某种负载策略把请求分发到集群中的每一台服务器上,让整个服务器群来处理网站的请求。来增加服务器的吞吐量和处理能力,以及承载能力。解决高并发带来的系统性能问题。
2)集群(Cluster)
用 N 台服务器构成一个松耦合的多处理器系统(对网站访问者说,它们就是一个服务器),它们之间通过网络实现通信。让 N 台服务器之间相互协作,共同承载一个网站的请求压力。
3)高可用(HA)
在集群服务器架构中,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务。
负载均衡、集群配置
Nginx 是一款轻量级的 Web 服务器、反向代理服务器及电子邮件代理服务器,其特点是占有内存少,并发能力强。在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。
Nginx负载均衡策略
- 负载均衡用于从“upstream”模块定义的后端服务器列表中选取一台服务器接受用户的请求。一个最基本的upstream模块是这样的,模块内的server是服务器列表:
#动态服务器组
upstream ibps3_gateway {
server 192.168.3.220:15100; # gateway
server 192.168.3.230:15100; # gateway
}
在upstream模块配置完成后,要让指定的访问反向代理到服务器列表:
server { listen ibps3.bpmhome.cn:15100; location / { proxy_pass http://ibps3_gateway; } }
这就是最基本的负载均衡实例,但这不足以满足实际需求;目前Nginx服务器的upstream模块支持6种方式的分配:
负载均衡策略
策略 | 说明 |
---|---|
轮询 | 默认方式 |
weight | 权重方式 |
ip_hash | 依据ip分配方式 |
least_conn | 最少连接方式 |
fair(第三方) | 响应时间方式 |
url_hash(第三方) | 依据URL分配方式 |
权重配置:
weight 和请求数量成正比,主要用于上游服务器配置不均衡的情况。下面的配置中,192.168.3.230 机器的请求量是 192.168.3.220 机器请求量的 2 倍。
upstream ibps3_gateway {
server 192.168.3.220:15100 weight=5; # gateway
server 192.168.3.230:15100 weight=10; # gateway
}
ip_hash 配置:
每一个请求按照请求的 ip 的 hash 结果分配。这样每一个请求固定落在一个上游服务器,能够解决 ip 会话在同一台服务器的问题。
upstream ibps3_gateway {
ip_hash;
server 192.168.3.220:15100; # gateway
server 192.168.3.230:15100; # gateway
}
- upstream 中常用的配置项:
- down:表示当前的 server 不參与负载均衡。
- weight:负载权重,值越大,负载的权重就越大,默认1。
- max_fails:最大请求失败尝试的次数默认1。
- fail_timeout:max_fails次失败后,暂停请求此台服务器的时间。
- backup:其它全部非 backup 机器 down 或者忙的时候,请求 backup 机器。所以这台机器压力会最轻。
upstream ibps3_gateway {
server 192.168.3.220:15100 max_fails=2 fail_timeout=20s weight=3;
server 192.168.3.230:15100 max_fails=2 fail_timeout=20s weight=3;
server 192.168.3.240:15100 down;
server 192.168.3.250:15100 backup;
}