🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 随机(Random)算法 通过系统随机函数,根据后端服务器列表的大小值来随机选取其中一台进行访问。由概率统计理论可以得知,随着调用量的增大,其实际效果越来越接近于平均分配流量到每一台后端服务器,也就是轮询的效果 ``` public class RandomTest { static List<String> list = Arrays.asList("192.168.0.101","192.168.0.102", "192.168.0.103", "192.168.0.104"); public static void main(String[] args) throws InterruptedException { while (true){ System.err.println(get()); TimeUnit.SECONDS.sleep(1); } } private static synchronized String get(){ // 拷贝服务列表避免出现由于服务器上线和下线导致的并发问题 List<String> result = new ArrayList<>(); result.addAll(list); Random random = new Random(); int randomPos = random.nextInt(result.size()); return result.get(randomPos); } } ``` 基于概率统计的理论,吞吐量越大,随机算法的效果越接近于轮询算法的效果。因此基本可以替代轮询算法