负载均衡算法也是分布式系统中的重要组成部分,用于将来自客户端的请求分配到不同的后端服务器上,以达到提高系统吞吐量、减轻服务器负担、提高系统可用性等目的
1、轮询法
轮询法是最简单、最常见的负载均衡算法之一,其实现思路也非常简单:按照事先规定的顺序依次将请求转发至后端服务器。例如,若有4台服务器,则第1个请求会被分配到第1台服务器上,第2个请求会被分配到第2台服务器上,第3个请求会被分配到第3台服务器上,第4个请求又会被分配到第1台服务器上,以此类推
//定义一个全局计数器,每次调用累加
private static AtomicInteger atomicInteger = new AtomicInteger(0);
//定义服务器列表
private static List<String> serverList = new ArrayList<>();
public static String roundRobin() {
//获取服务器数量
int serverCount = serverList.size();
//获取当前请求应该转发到哪台服务器
int currentServerIndex = atomicInteger.incrementAndGet() % serverCount;
//返回对应的服务器地址
return serverList.get(currentServerIndex);
}
核心就在于根据服务器的数量来进行取模运算
优点:简单高效,易于水平扩展,每个节点满足字面意义上的