- 负载均衡其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。
- 其实现如下
如果只有一台web服务器,当访问量特别大的时候,难免会造成极差的用户体验。但是在访问web之前加上nginx代理服务器,然后由nginx分配访问量到不同的web服务器,就会大大降低服务器的压力。而且,如果一台服务器挂了,还会有其他服务器继续工作,方便后期维护。 -
springboot+nginx实现负载均衡:
假如tomcat的端口号是8080
我们先启动服务
可以看到所有的访问都是在这一个服务器下,如果它挂了,则访问不到web资源
但是我们在本地下载nginx
下载完成之后不需要安装,双击nginx.exe启动代理服务器,启动会一闪而过,我们可以在任务管理器看到代理服务器启动了,然后到conf下的nginx.conf下添加web服务器。添加服务的时候注意weight代表权重,权重越大,被访问的概率越大。同时我们把服务端口修改为8000来模拟两台web服务器。
注册完服务器之后,在任务管理器中结束nginx任务,然后重新启动nginx,启动之后访问本地的nginx服务器。
同时在后台可以看到它的请求到了两台不同的服务器下。
此时,用户的请求会被随机均分到不同的服务器,但是此时如果用户在A服务器登录成功,然后访问的时候被分配到了B服务器,会发现在访问的时候session不存在,造成不好的用户体验。因此有一种常用得session共享方式是把session放到一台单独的redis服务器中,在访问之前首先请求redis服务器拿去session信息。