什么是负载均衡?
当一台应用服务器的性能达到极限时,我们可以使用集群这种技术手段来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台应用服务器去处理。
这个调度者就是负载均衡服务器。
负载均衡服务器可以用来实现网站架构的高可用以及伸缩性:
- 高可用:当某个节点故障时,负载均衡器会将用户请求转发到另外的节点上,从而保证所有服务持续可用;
- 伸缩性:根据系统整体负载情况,可以很容易地添加或移除节点。
负载均衡服务器的实现可以分成两个部分:
- 根据负载均衡算法和Web服务器列表计算得到集群中一台Web服务器的地址
- 将请求数据发送到该地址对应的Web服务器上
下面分别介绍负载均衡的算法与转发实现这两个部分。
一、负载均衡算法
1. 轮询(Round Robin)
轮询算法把每个请求轮流发送到每个服务器上。
适合于所有服务器硬件都相同的场景。
如下图所示,一共有四个请求(1,2,3,4)按序到达负载均衡调度器,它们会被轮流发给服务器 A 和服务器 B.
但是如果服务器性能差异过大,那么性能较差的服务器可能无法承担过大的负载,如下图的Server B,它只能承受一个请求。