微服务稳定性兜底:深入解析 go-kratos/aegis 的核心设计
微服务稳定性兜底:深入解析 go-kratos/aegis 的核心设计 在高并发微服务体系中,单点故障、流量洪峰、缓存热点都可能引发雪崩。aegis 是 Kratos 框架中的稳定性组件库,集成了多种常见的保护机制,以较低开销提供多层防护。本文围绕其核心模块展开,分析背后的算法原理与工程权衡。 一、项目全景 TEXTgo-kratos/aegis ├── ratelimit/bbr # 自适应限流(BBR 算法) ├── circuitbreaker/sre # 熔断器(Google SRE 自适应节流) ├── topk/heavykeeper # Top-K 热点 key 检测(HeavyKeeper 算法) ├── hotkey # 热点 key 自动本地缓存 ├── subset # 一致性哈希子集路由 └── internal ├── window # 滑动窗口(环形数组) ├── consistent # 一致性哈希 ├── minheap # 最小堆 └── cpu # CPU 使用率采样 核心哲学:用概率和统计代替精确计数,以极低的内存和计算开销换取足够准确的系统保护。 二、BBR 自适应限流 2.1 问题背景 传统限流通常是硬编码一个 QPS 上限(如"最多 1000 RPS")。问题在于: ...