一台机器不能满足,则增加两台或者多台机器,共同承担访问压力,这就是典型的集群和负载均衡架构。
如下图所示:
上面的的客户端访问,需要通过负载均衡采用分发到不用的应用服务器上,这里就会涉及到负载均衡策略。
常见的负载均衡策略,主要包含如下策略:
1.轮询(Round Robin)
按照顺序将请求依次分配给每个服务器,确保每个服务器都能平均分担负载。
如下图所示:
适用于服务器性能相似,无需考虑服务器当前负载情况的情况。
2.IP 哈希(IP Hash)
根据客户端的 IP 地址将请求分配给服务器,这会通过哈希函数来分配应用服务器。
如下图所示:
相同 IP 的客户端将始终被分配到同一台服务器上,当后端服务器列表不变时,这对于某些需要保持会话的应用程序很有用。
3.加权轮询(Weighted Round Robin)
为每个服务器分配一个权重值,根据权重值决定分配请求的比例,权重越高的服务器分配到的请求数量就越多。
如下图所示:
4.最少连接(Least Connection)
将请求分配给当前连接数最少的服务器,以确保每个服务器的负载尽可能平衡。
如下图所示:
适用于请求处理时间不同,负载可能不均衡的情况。
5.随机策略
通过系统随机函数,根据后台服务器列表的大小值来随机选取其中一台进行访问。
如下图所示:
随着调用量的增大,客户端的请求可以被均匀地分派到所有的后端服务器上,其实际效果越来越接近于平均分配流量到后台的每一台服务器,也就是轮询法的效果。
6.加权最少连接(Weighted Least Connection)
结合了加权和最少连接策略,服务器的权重值与当前连接数成反比,连接数越少且权重越高的服务器将获得更多的请求。
陈睿mikechen
十余年BAT架构经验,资深技术专家,就职于阿里、淘宝、百度等一线互联网大厂。
关注「mikechen」公众号,获取更多技术干货!
后台回复【面试】即可获取《史上最全阿里Java面试题总结》,后台回复【架构】,即可获取《阿里架构师进阶专题全部合集》