nginx 事件定时器以到期时间为键放入红黑树,事件循环读取最小键确定等待上限。
附源码片段 · 调度与资源分配
Web 服务器与反向代理 · 事件、限流、路由与负载均衡
nginx 事件定时器以到期时间为键放入红黑树,事件循环读取最小键确定等待上限。
limit_req 把漏桶计算、红黑树查状态与队列回收组合起来,按配置的 key 管理请求速率。
nginx 的 consistent hash 将上游展开为有序哈希点,再用二分查找定位请求 key 的落点。
nginx geo 的 CIDR 模式使用二进制 radix tree,为请求地址查找最具体的网络前缀配置。
nginx 解析 upstream 块时,用 ngx_array_t 连续保存服务器条目;每遇到一条 server 指令便追加一个元素。
nginx 按有效权重累加候选节点的得分,选中最高分节点后减去总权重,让请求按权重交错分配。
nginx 将小额分配变成池内游标推进,并以池的生命周期统一释放;较大的分配另建记录管理。