我还是一个萌新 第一次写博客,如果有说的不对的地方欢迎大家指出。
负载均衡是什么
简单的说就是你访问一个固定的地址他会帮你代理到多个其他的地方去。
用SpringBoot作为测试用的技术
在服务器中
这是我测试的效果
刷新后
Nginx如何实现负载均衡
首先安装Nginx 不会的自己百度
负载均衡配置默认使用轮询
我这里外网224端口对应内网80端口 224 == 80
upstream_name 这一个是类似与变量名的一个东西
proxy_pass http://upstream_name; 可以理解为 http://127.0.0.1:8001 | 127.0.0.1:8002
拓展知识
负载均衡访问策略
轮询
什么都不用写,默认就是轮询。
#轮询
upstream demo{
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
权重
weight=#{权重值};
权重值默认是1 权重值越大被访问几率就越高
#权重
upstream demo{
server localhost:8080 weight=2;
server localhost:8081 weight=3;
server localhost:8082 weight=4;
server localhost:8083;
}
权重分配算法:大佬对权重算法的描述
根据IP分配
ip_hash;
#ip_hash
upstream demo{
ip_hash;
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
如果有人问你分布式如何解决共享session的问题,这个ip_hash是一个不错的选择,当然还有session存缓存里也是解决方法。
在nginx1.3.1之前的版本 ip_hash 与权重不能并存,ip_hash与backup并存。
根据URL分配
url_hash;
#url_hash
upstream demo{
hash $request_uri;
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
适用于服务器条件不同,访问量不同,网络情况不同的一个策略
把请求分给处理请求少的服务器
least_conn;
#least_conn
upstream demo{
least_conn;
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
访问量大且解决了session共享问题,一个可以考虑的优化方案
响应时间短的优先分配
fair;
#fair
upstream demo{
fair;
server localhost:8080;
server localhost:8081;
server localhost:8082;
server localhost:8083;
}
谢谢观看,如果有说得不对的地方欢迎大家指出来,我写博客的原因是我每次遇到问题的时候去百度就会发现有许许多多篇文章对我所遇到的问题进行描述,和解决方案。我很佩服这样的人,我也要做一个乐于分享的人 ,做1+1 >2的事情,也感谢那些乐于分享的大佬们。