负载均衡
- 当并发量过大时,可能造成服务器直接崩溃,为此可以升级服务器的配置,比如提高CPU执行频率,加大内存等提高机器物理性能来解决问题(纵向解决问题),但如果是瞬时访问量的增加,则此方法是不能够满足需求的。
- 采用横向增加服务器的数量来解决问题(集群),增加服务器的数量,将请求分发到各个服务器(负载均衡)
- 将负载分摊到不同的服务器单元,保证服务的可用性,响应速度。
nginx搭建负载均衡集群
1. 准备两个tomcat
2. 修改tomcat中conf文件夹下的server.xml文件(修改port)
<Server port="18005" hutdown="SHUTDOWN">
<Connector port="8181" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<Connector port="18009" protocol="AJP/1.3"
redirectPort="8443" />
|负载均衡的四个策略|
一、轮询(默认)
轮询.png
二、weight 权重
- 指定轮询的几率,weight和访问比率成正比,用于后台服务器性能不均的情况
- weight 默认为1,权重越高分配的客户越多,响应次数越多
- 如果存在性能优劣的服务器,适当的将优的服务器的权重设置高一些
# 反向代理配置
upstream server_list{
# 这个是tomcat的访问路径
server localhost:8080 weight=5;
server localhost:8181 weight=1;
}
三、ip_hash
- 每个请求按访问ip的hash值分配
- 让每个访问客户端固定访问一个后端服务器,可解决会话Session丢失问题
- 无论刷新多少次,始终访问同一台tomcat服务器
- 思考:每次都访问同一个服务器,违背了“集群”的意义
upstream backserver {
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8181;
}
四、最少连接 [least_conn]
- web请求会被转发到连接数最少的服务器上
upstream backserver {
least_conn;
server 127.0.0.1:8080;
server 127.0.0.1:9090;
}