什么是负载均衡?简单来说,负载均衡实际上就是将大量的请求进行分布式处理的策略。详情可以查看:What Is Load Balancing? How Load Balancers Work
负载均衡实现的几种方式
负载均衡是通过nginx反向代理实现的。先写一个简单的server。
server {
listen 80;
server_name localhost;
location /{
proxy_pass http://group/;
}
}
1.轮询
客户端发送一条请求,第一条请求会随机发送给其中一服务,比如第一条请求由8181处理,那么下一条请求就是9191处理,接下来的请求都会来回切换处理。
upstream group {
server 127.0.0.1:8181;
server 127.0.0.1:9191;
}
如果其中一个服务器down掉了,请求得不到正确响应,将会自动请求其它服务器。
2.权重
通过添加weight来设置访问权重,weight的数值越大被访问的几率越大。
upstream group {
server 127.0.0.1:8181 weight=1;
server 127.0.0.1:9191 weight=9;
}
如上图,两者的权重比例为1:9,如果有10次请求,8181服务将被分配1次请求,9191将被分配9次。
3.IP
添加ip_hash可以实现客户端ip绑定,如果某个用户一开始请求被分配到8181,那么当该用户再次访问时,将会自动被分配到8181。通过IP绑定可以实现会话共享。
upstream group {
ip_hash;
server 127.0.0.1:8181;
server 127.0.0.1:9191;
}