负载均衡加权轮询算法

随机数加权轮询算法

java 复制代码
public int select() {
        int[] weights = {10, 20, 50};
        int totalWeight = weights[0] + weights[1] + weights[2];
        // 取随机数
        int offset = ThreadLocalRandom.current().nextInt(totalWeight);
        for (int i = 0; i < weights.length; i++) {
            offset -= weights[i];
            if (offset < 0) {
                return i;
            }
        }
        return -1;
    }

平滑加权轮询算法

java 复制代码
int[] weights = {10, 20, 50};   // 节点权重
    int totalWeight = weights[0] + weights[1] + weights[2]; // 总权重
    int[] current = new int[]{10, 20, 50};  // 初始化当前权重

    public int select() {
        int maxCurrent = -1, selected = -1;
        // 遍历所有节点,找到当前权重最大的节点
        for (int i = 0; i < weights.length; i++) {
            // 重新计算当前权重
            current[i] += weights[i];
            int cur = current[i];
            if (cur > maxCurrent) {
                maxCurrent = cur;
                selected = i;
            }
        }
        // 被选中的节点减去总权重
        current[selected] -= totalWeight;
        return selected;
    }
相关推荐
zhojiew4 分钟前
为agent实现渐进式Skills能力的思考和实践
linux·python·算法
相思难忘成疾18 分钟前
《RHEL9虚拟机部署及SSH远程登录实践手册》
linux·运维·ssh·虚拟机
cg_ssh30 分钟前
Vue3中样式变量的使用
linux·运维·服务器
ATAOL33 分钟前
数据结构一
数据结构·算法
TDengine (老段)1 小时前
TDengine IDMP 运维指南 —— 部署架构
大数据·运维·数据库·架构·时序数据库·tdengine·涛思数据
zyq99101_11 小时前
Python日期处理实战代码
python·算法·蓝桥杯
灰阳阳1 小时前
Docker镜像远程(离线)迁移教程
运维·docker·容器
AC赳赳老秦1 小时前
DeepSeek优化多智能体指令:避免协同冲突,提升自动化流程稳定性
android·大数据·运维·人工智能·自然语言处理·自动化·deepseek
轻颂呀2 小时前
Linux总结
linux·运维·服务器
鬓戈2 小时前
SeaweedFS集群上文件遍历和删除
运维·python