负载均衡算法

轮询算法

// 原子类,保证线程安全,构造为初始值
AtomicInteger atomicInteger = new AtomicInteger(-1);
index = atomicInteger.incrementAndGet() % size;

随机算法

Random random = new Random();
index = random.nextInt(size);

权重算法

// 定义容器
List<Object> list = new ArrayList<>();
// 遍历所有实例
instances.forEach(service -> {
    // 根据实例的权重
    Double width = service.get("width");
    for (int i = 0; i < width; i++) {
        // 添加(权重数)个当前遍历的实例到容器
        list.add(service);
    }
});
// 轮询容器中的实例
index = atomicInteger.incrementAndGet() % list.size();

故障转移

for (int i = 0; i < size; i++) {
    try {
        // 一部分失败
        if (i < 3){
            int j = 1 / 0;
        }
        return "连接成功";
    }catch (Exception e){
        log.error("尝试连接下一个");
    }
}
return "连接失败";

相关推荐

  1. 负载均衡算法

    2024-04-15 05:00:02       37 阅读
  2. 负载均衡原理|算法

    2024-04-15 05:00:02       37 阅读
  3. NGINX配置负载均衡算法

    2024-04-15 05:00:02       56 阅读
  4. 负载均衡原理及算法

    2024-04-15 05:00:02       44 阅读
  5. Dubbo 负载均衡算法说明

    2024-04-15 05:00:02       39 阅读
  6. 负载均衡原理及算法

    2024-04-15 05:00:02       25 阅读
  7. 负载均衡原理及算法

    2024-04-15 05:00:02       45 阅读
  8. 负载均衡原理及算法

    2024-04-15 05:00:02       45 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-15 05:00:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-15 05:00:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-15 05:00:02       82 阅读
  4. Python语言-面向对象

    2024-04-15 05:00:02       91 阅读

热门阅读

  1. 列举和介绍Mysql中各种日志

    2024-04-15 05:00:02       39 阅读
  2. canvas图上绘制边框,可放大缩小,可拖动

    2024-04-15 05:00:02       35 阅读
  3. 匿名内部类

    2024-04-15 05:00:02       41 阅读
  4. C++ 泛型编程 模板

    2024-04-15 05:00:02       36 阅读
  5. rust实现双向队列

    2024-04-15 05:00:02       106 阅读
  6. es6对于Promise 对象的详解(2024-04-11)

    2024-04-15 05:00:02       44 阅读
  7. Leetcode215_数组中的第K个最大元素

    2024-04-15 05:00:02       44 阅读
  8. 算法3:寻找数组的中心下标

    2024-04-15 05:00:02       124 阅读
  9. kubernetes常用命令整理

    2024-04-15 05:00:02       32 阅读