limit_req 把漏桶计算、红黑树查状态与队列回收组合起来,按配置的 key 管理请求速率。
附源码片段 · 通信与流量
怎样分流、限速并协调多个节点?
包括请求路由、流控、共识与集合通信;持久化副本位置归入存储。
limit_req 把漏桶计算、红黑树查状态与队列回收组合起来,按配置的 key 管理请求速率。
nginx 的 consistent hash 将上游展开为有序哈希点,再用二分查找定位请求 key 的落点。
SwarmKit 的管理节点通过 Raft 复制状态,leader 负责将更新提案纳入一致日志。
用不同通信拓扑组织梯度归约,在带宽利用与启动延迟之间取舍。
nginx 解析 upstream 块时,用 ngx_array_t 连续保存服务器条目;每遇到一条 server 指令便追加一个元素。
nginx 按有效权重累加候选节点的得分,选中最高分节点后减去总权重,让请求按权重交错分配。
Go 的 HTTP 正文传输复用 io.CopyBuffer;复制器以 Reader/Writer 为基础,并探测可选的专用传输能力。
Envoy 本地限流按单调时钟补充令牌,用原子更新协调同一桶的并发扣减。桶容量决定可积累的突发量。