Graduation Project
多优先级队列调度 · 动态负载均衡 · 语义过滤 · 滑动窗口限流
Gateway 作为统一入口,依次经过限流器、语义过滤器、优先级队列、WFQ 调度器和负载均衡器, 最终将请求分发到后端模型实例。下方动画展示了三种典型场景下的请求流转过程。
Weighted Fair Queuing 通过虚拟完成时间(Virtual Finish Time)确保各优先级按权重比例获得服务。 权重越高的队列,单次调度的 finishTag 增量越小,从而更频繁地被选中。
finishTag = max(lastFinish, vtime) + (itemSize / weight)
负载均衡器根据每个后端的实时负载评分选择最优目标。评分越低的后端优先接收新请求, 从而实现自适应流量分配和热点惩罚。
score = (inflight + 1) × latency_ms × (1 + 0.1 × inflight)
使用指数加权移动平均 (α=0.2) 平滑延迟估计
基于滑动窗口的限流机制,实时统计窗口内请求数量。当请求数达到降级阈值(8次/窗口)时进入降级状态, 返回简化响应;达到封禁阈值(15次/窗口)时直接拒绝请求。窗口过期后自动恢复到允许状态。
语义过滤器结合规则引擎(中文关键词匹配)和远程模型分类,对请求进行语义分析。 两个分数通过加权融合(α=0.6)得到最终得分,判断请求属于专业、通用还是闲聊类型。
fusedScore = α × ruleScore + (1-α) × modelScore
系统根据后端负载(inflight 请求数、EWMA 延迟、队列深度)计算一个综合压力值 (0~1)。
压力越高,限流和过滤的阈值越严格 — 通过 Sigmoid 函数实现平滑过渡,避免硬切换带来的抖动。
这就是策略 profile 中 adaptive_threshold 的核心原理。
系统内置 6 种策略 Profile,逐步启用更多 QoS 特性。点击下方按钮切换策略, 查看各策略的功能矩阵和性能指标对比。
| 特性 | 基线 | 仅分层 | 分层+防御 | 分层+层级 | 自适应阈值 | 完整策略 |
|---|
实验表明,渐进式启用 QoS 控制模块能显著提升系统的公平性和吞吐量。完整策略 (full_strategy) 相比基线,P95 延迟降低 51%,Jain 公平性指数从 0.72 提升至 0.95,吞吐量提升 25%。语义过滤在高负载场景下有效拦截低价值请求,保护高优先级服务质量。