news 2026/2/7 11:26:24

Nginx架构学习:为什么Nginx不怕“一拥而上“?深入源码揭秘平滑加权轮询的精妙设计

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Nginx架构学习:为什么Nginx不怕“一拥而上“?深入源码揭秘平滑加权轮询的精妙设计

一、一个让我困惑了三年的问题

做后端开发的同学,大概都配过Nginx负载均衡。配置不难,几行upstream搞定:

upstream backend { server 192.168.1.1:8080 weight=5; server 192.168.1.2:8080 weight=3; server 192.168.1.3:8080 weight=1; }

weight=5的机器性能好,就让它多扛点请求。挺合理。

但有个问题一直困扰我:Nginx到底怎么根据权重分请求的?

最直觉的想法——连续发5个请求给权重5的服务器,再发3个给权重3的,最后1个给权重1的。但仔细想想不对:这么干的话,权重高的机器会在短时间内被"打爆",其他机器却在旁边闲着。

那Nginx怎么做到既按权重分配、又让请求分布足够"平滑"呢?

这个问题我琢磨了三年。直到最近读了Nginx源码,才发现里面藏着一个精妙绝伦的算法——平滑加权轮询(Smooth Weighted Round-Robin)。

今天把这个算法彻底讲清楚。


二、负载均衡的本质:分蛋糕问题

深入源码之前,先退一步,搞清楚负载均衡到底在解决什么。

想象你是餐厅老板,手底下三个服务员:

  • 小王:手脚最麻利,能同时服务5桌客人
  • 小李
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/5 17:57:22

本地部署FastGPT使用在线大语言模型

FastGPT 是一个基于 LLM 大语言模型的知识库问答系统,提供开箱即用的数据处理、模型调用等能力,它背后依赖OneApi开源项目来访问各种大语言模型提供的能力。各大语言模型提供的访问接口规范不尽相同,为此OneApi项目提供了统一的API接口去对接…

作者头像 李华
网站建设 2026/2/6 10:23:16

为pngme拓展对gif格式支持

为pngme拓展对gif格式支持引言GIF格式简读GIF结构原始数据到结构数据读屏幕逻辑数据读图像数据读取扩展块读取子块链将文本写入应用扩展块结构数据到原始数据引言 前序文章为pngme拓展加密功能与jpg格式支持-CSDN博客,其中所提到的东西,本文不会重复提及…

作者头像 李华
网站建设 2026/2/6 17:42:26

互联网大厂Java求职面试实战:微服务、缓存与AI技术全栈问答解析

互联网大厂Java求职面试实战:微服务、缓存与AI技术全栈问答解析 本文以互联网大厂Java求职者谢飞机与严肃面试官的对话形式,真实还原面试场景,涵盖Java SE 8/11/17、Jakarta EE、Spring Boot、微服务架构、数据库ORM、缓存技术、消息队列、安…

作者头像 李华
网站建设 2026/2/6 6:16:05

Linux驱动probe函数全解析:以蜂鸣器驱动为例,吃透初始化流程与规范

Linux驱动probe函数全解析:以蜂鸣器驱动为例,吃透初始化流程与规范 probe函数是Linux platform驱动的“灵魂入口”——当内核完成驱动与设备树/平台设备的匹配后,会调用probe函数完成驱动的核心初始化。本文以蜂鸣器驱动的probe函数为例&…

作者头像 李华
网站建设 2026/2/6 22:42:16

AI人工智能如何正确入行(小白程序员必收藏)

到底做什么,才算真正入行AI? 这个话题我在之前的分享中多次提及,今天结合工业界实际场景再系统梳理一遍:在企业中直接落地AI技术的岗位,核心可分为三大类——算法类、工程类、数据类。 当下网络上,无论是…

作者头像 李华