什么是负载均衡
当一台服务器的性能达到极限时,可以通过服务器集群来提高网站的整体性能。在服务器集群中需要有一台服务器充当调度者的角色,将其接收到的请求分发给不同的服务器去处理。
在这个过程中,调度者如果可以合理分配任务,那么就能保证后端服务器将性能充分发挥,使服务器集群的整体性能最优化。
实现方法
HTTP 重定向
-
过程描述
当用户向服务器发起请求时,请求首先被集群调度者截获;调度者根据某种分配策略,选择一台服务器,并将选中的服务器的 IP 地址封装在 HTTP 响应消息头部的 Location 字段中,并将响应消息的状态码设为 302 ,最后将这个响应消息返回给浏览器。
当浏览器收到响应消息后,解析 Location 字段,并向该 URL 发起请求,然后指定的服务器处理该用户的请求,最后将结果返回给用户。
-
调度策略
-
随机分配策略
当调度服务器收到用户请求后,随机决定使用哪台后端服务器,然后将该服务器的 IP 封装在 HTTP 响应消息的 Location 属性中,返回给浏览器。
-
轮询策略(RR)
调度服务器维护一个值,用于记录上次分配的后端服务器的 IP 。当新的请求到来时,调度者将请求依次分配给下一台服务器。
由于轮询策略需要调度者维护一个值用于记录上次分配的服务器的 IP,因此需要额外的开销;此外,由于这个值属于互斥资源,那么当多个请求同时到来时,为了避免线程的安全问题&
-