1、什么是负载均衡?
问题:
现在网站的架构已经从C/S模式转变为B/S模式,对于这两种模式的区别,大家没必要纠结,有兴趣的同学可以给我留言,我会在后面为大家讲解,现在只需要知道C/S模式是有一个专门的客户端,而B/S模式是将浏览器作为客户端。当用户在浏览器上输入一个网址按下回车键后,就会产生一个请求,在远方的服务器会处理这个请求,根据这个请求来生成用户想要的页面,然后将这个页面响应给浏览器,这样用户就能看到他想要看到的东西。我们知道,一台服务器处理数据(请求也是一种数据)的能力是有限的,当有大量的用户同时在浏览器上输入网址并按下回车键后,就会有大量的请求产生,远方的服务器就不得不处理这些请求,由于请求数量过多,服务器处理的效率就会变慢,响应时间就会变长,这样用户就不能在可以忍受的时间内看到自己想看到的东西,严重影响体验效果。更严重一点,如果请求数量超过了这台服务器所能处理的最大请求,服务器就会崩溃,直接导致网站瘫痪。
解决方法:
建立一个集群(就是一群服务器),通过集群的力量来提高服务端的数据处理能力,因为一台服务器的处理能力肯定比不上多台服务器的处理能力。
用户请求页面的过程:
首先用户在浏览器输入网址并按下回车键,然后会产生一个请求,远方的服务器会处理这个请求......等等,现在远方有很多服务器,到底哪个服务器来处理这个请求呢,总不能所有的服务器都处理这个请求吧。哪个服务器处理这个请求?这就是负载均衡所要解决的问题。
回到上边请求页面的过程,这个请求此时会被一台专门的服务器来处理,这台服务器其实就是这个集群的老大,他负责把这个请求派给下面哪个小弟(服务器)来处理,处理完之后将页面返回给用户。当有多个请求同时发生时,集群的老大可以将请求派给不同的小弟,这样处理的效率会大幅提升,充分发挥集群的力量,至于哪个请求到底派给哪个小弟,这就是调度策略的问题了。
2、实现负载均衡的三种方式
(1)HTTP重定向实现负载均衡
(2)DNS负载均衡
(3)反向代理负载均衡