// Package loadbalance 提供负载均衡算法实现。 // // 该文件包含负载均衡算法相关的辅助逻辑,包括: // - ValidAlgorithms 有效算法列表定义 // - IsValidAlgorithm 算法有效性校验函数 // // 主要用途: // // 用于校验和枚举系统支持的负载均衡算法类型,供配置解析和路由选择使用。 // // 注意事项: // - 新增算法时必须同步更新 ValidAlgorithms 列表 // - 空字符串被视为有效值,表示使用默认算法 // // 作者:xfy package loadbalance import "slices" // ValidAlgorithms 定义系统支持的负载均衡算法名称列表。 // // 该列表用于配置校验,包含以下算法: // - round_robin: 简单轮询,按顺序均匀分配请求 // - weighted_round_robin: 加权轮询,按权重比例分配请求 // - least_conn: 最少连接,选择活跃连接数最少的目标 // - ip_hash: IP 哈希,基于客户端 IP 实现会话保持 // - consistent_hash: 一致性哈希,使用虚拟节点实现均匀分布 var ValidAlgorithms = []string{ "round_robin", "weighted_round_robin", "least_conn", "ip_hash", "consistent_hash", "random", } // IsValidAlgorithm 检查给定的算法名称是否有效。 // // 该函数用于配置解析阶段校验算法参数的合法性。 // 空字符串被视为有效值,表示由调用方选择默认算法。 // // 参数: // - alg: 算法名称字符串,如 "round_robin"、"least_conn" 等 // // 返回值: // - true: 算法有效(在 ValidAlgorithms 列表中或为空字符串) // - false: 算法无效(不在 ValidAlgorithms 列表中且非空) func IsValidAlgorithm(alg string) bool { if alg == "" { return true } return slices.Contains(ValidAlgorithms, alg) }