权重调度是根据边缘节点或上游源站的能力(带宽、并发、地域权重等)分配流量的机制,通过给每个节点分配权重值来影响请求分配比例,从而实现负载均衡与资源利用最优化。健康检测是用于判断节点是否可用的机制,包含主动探测(HTTP/TCP/ICMP)和被动监测(错误率、超时、连接失败等),用于触发流量剔除、降权或恢复。
常见算法包括:简单轮询(均匀分配)、加权轮询/加权随机(依据静态权重分配)、加权最少连接(考虑当前连接数)、基于响应时间的权重调整(快速响应优先)。简单轮询实现简单但忽略节点差异;加权算法支持静态资源差异但需人工配置;最少连接适合长连接场景;基于性能的动态权重能随时反映真实能力,但复杂度和抖动风险更高。
实现要点:1) 采用多种探测协议(HTTP探针用于上层服务检测,TCP探针用于连通性,ICMP用于网络级连通);2) 设置合适的探测间隔、超时与失败阈值(避免误判同时保证及时感知);3) 使用逐步剔除策略(连续N次失败再剔除)与恢复探测(降级探测频率);4) 融合被动指标(错误率、延迟分布)与主动探测结果,形成更稳健的健康判定。
协同策略包括:1) 动态权重调整:根据实时健康评分和性能指标自动调整权重,健康评分低则快速降权;2) 熔断与退避:出现短时异常时先降权并限制流量,连续故障触发熔断下线;3) 渐进恢复:节点恢复后采用逐步提升权重的方式,防止流量骤增导致二次故障;4) 区域感知与流量隔离:按地域/链路特性调整权重并避免跨区抖动。
调优建议:1) 指标定义:监控请求成功率、P50/P95/P99延迟、错误率、节点并发与带宽利用率、探测失败率与恢复时间;2) 小步快跑:先用静态权重基线,逐步引入动态权重并缓慢降低人工介入;3) 仿真与流量回放:在测试环境用流量回放验证权重策略与健康检测阈值;4) 告警与可视化:为关键阈值配置告警并建立拓扑视图,便于快速定位;5) 灾难演练:定期进行节点下线、链路抖动实验(Chaos)验证自动降权与恢复流程。
