前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Nginx负载均衡(加权轮询)

Nginx负载均衡(加权轮询)

作者头像
用户8851537
修改于 2021-08-19 06:45:18
修改于 2021-08-19 06:45:18
85500
代码可运行
举报
运行总次数:0
代码可运行

权重变量

weight

配置的权重,即在配置文件或初始化时约定好的每个节点的权重

effective_weight

后端的有效权重,初始值为weight 在释放后端时,如果发现与后端的通信过程中发生了错误,则减小effective_weight 此后有新的请求过来时,在选取后端的过程中,再逐步增加effective_weight,最终又恢复到weight 这个配置作用主要是为了当后端发生错误时,降低其权重

current_weight

后端的当前权重,初始值为0 每次选取后端时,会遍历集群中所有后端,对于每个后端,让它的current_weight增加它的effective_weight,同时累加所有后端的effective_weight,保存为total 如果该后端的current_weight是最大的,就选定这个后端,然后把它的current_weight减去total 如果该后端没有被选定,那么current_weight不用减小

算法逻辑

轮询所有节点,计算当前状态下所有节点的effectiveWeight之和totalWeight currentWeight = currentWeight + effectiveWeight,选出所有节点中currentWeight中最大的一个节点为命中节点 命中节点的currentWeight = currentWeight - totalWeight;

示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
upstream test {
    server localhost:8081 weight=1
    server localhost:8082 weight=2
    server localhost:8083 weight=3
}

current_weight

current_weight += effective_weight

total

命中

current_weight

[0,0,0]

[1,2,3]

6

8003

[1,2,-3]

[1,2,-3]

[2,4,0]

6

8002

[2,-2,0]

[2,-2,0]

[3,0,3]

6

8003

[3,0,-3]

[3,0,-3]

[4,2,0]

6

8001

[-2,2,0]

[-2,2,0]

[-1,4,3]

6

8002

[-1,-2,3]

[-1,-2,3]

[0,0,6]

6

8003

[0,0,0]

[0,0,0]

[1,2,3]

6

8003

[1,2,-3]

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入剖析Nginx负载均衡算法
负载均衡是Nginx的核心应用场景,本文将介绍官方提供的5种负载均衡算法及其实现细节。
陶辉
2023/10/18
8880
深入剖析Nginx负载均衡算法
分布式 | 常见的负载均衡算法
为了提高项目整体的并发和可用性,我们往往会对同一个项目部署多个实例,这时就需要根据不同的算法来进行负载均衡,下面来介绍一下常见的负载均衡算法
双鬼带单
2021/03/19
2.5K0
工具系列 | 负载均衡算法 - 平滑加权轮询
在 负载均衡算法 — 轮询 一文中,我们就指出了加权轮询算法一个明显的缺陷。即在某些特殊的权重下,加权轮询调度会生成不均匀的实例序列,这种不平滑的负载可能会使某些实例出现瞬时高负载的现象,导致系统存在宕机的风险。为了解决这个调度缺陷,就提出了 平滑加权轮询 调度算法。
Tinywan
2020/08/17
2.1K0
分布式高可靠之负载均衡,今天看了你肯定会
到目前为止,我已经为你介绍了分布式起源、分布式协调与同步、分布式资源管理与负载调度、分布式计算技术、分布式通信技术和分布式数据存储。
架构师修炼
2020/07/17
5240
kratos源码分析系列(6)
直接获取当前节点:selector/node/direct/direct.go
golangLeetcode
2023/09/06
5390
kratos源码分析系列(6)
Nginx负载均衡策略_nginx高可用集群和负载均衡集群
最基本的配置方法,它是upstream的默认策略,每个请求会按时间顺序逐一分配到不同的后端服务器。
全栈程序员站长
2022/11/08
1.2K0
nginx之负载均衡
主要使用的是nginx的http模块来实现两台或多台http服务器的负载均衡,配置为:
山行AI
2019/07/16
1.4K0
nginx之负载均衡
五分钟看懂 Nginx 负载均衡
? 这是第 43 篇不掺水的原创,想要了解更多,请戳上方蓝色字体:政采云前端团队 关注我们吧~ 本文首发于政采云前端团队博客:五分钟看懂 Nginx 负载均衡 https://www.zoo.tea
政采云前端团队
2020/03/31
9960
五分钟看懂 Nginx 负载均衡
集群反向代理实现负载均衡『nginx & apache2』
前言 今天在专题收录一篇关于ngixn与apache2实现负载均衡的文章,仔细看了一遍,有些地方存在错误,记得之前搭建过这样的环境,今天呢,好好记录分享一下。 ---- nginx & apache 简单说说它俩的优点 nginx的并发量高、占用资源少,适用于前端或静态服务 apache服务超级稳定,适用于后端或动态服务 ---- nginx & apache协作流程 一般而言,我们可以使用nginx以及apache实现集群服务器负载均衡,具体如何实现的呢?它们的工作流程又是如何的呢? 第一步:客户端
AlicFeng
2018/06/08
1.1K0
Dubbo 负载均衡的实现
负载均衡是指在集群中,将多个数据请求分散在不同单元上进行执行,主要为了提高系统容错能力和加强系统对数据的处理能力。
Bug开发工程师
2020/05/26
5470
Dubbo 负载均衡的实现
为MySQL MGR实现简单的负载均衡代理
在多写(多节点写入)数据库(例如MySQL MGR的multi-primary mode)与应用之间,往往会加一层代理组件,通过算法调节不同节点负载,分发高并发读写请求。
GreatSQL社区
2022/04/27
4050
6.源码分析---和dubbo相比SOFARPC是如何实现负载均衡的?
在负载均衡时使用保持本机优先。这个相信大家也比较好理解。在所有的可选地址中,找到本机发布的地址,然后进行调用。
luozhiyun
2019/08/28
6280
6.源码分析---和dubbo相比SOFARPC是如何实现负载均衡的?
Nginx负载均衡策略
在服务器集群中,Nginx 起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器。
Li_XiaoJin
2022/06/12
3100
深入浅出负载均衡
大型网站都要面对庞大的用户量,高并发,海量数据等挑战。为了提升系统整体的性能,可以采用垂直扩展和水平扩展两种方式。
2020labs小助手
2021/06/07
5100
Nginx技术总结之四——集群和负载均衡的算法与实现
负载均衡器可以是专用设备,也可以是在通用服务器上运行的应用程序。 分散请求到拥有相同内容或提供相同服务的服务器。 专用设备一般只有以太网接口,可以说是多层交换机的一种。 负载均衡器一般会被分配虚拟IP地址,所有来自客户端的请求都是针对虚拟IP地址完成的。负载均衡器通过负载均衡算法将来自客户端的请求转发到服务器的实际IP地址上。
剑影啸清寒
2020/07/20
6540
Nginx技术总结之四——集群和负载均衡的算法与实现
nginx负载均衡的5种策略及原理
1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 upstream backserver { server 192.168.0.14; server 192.168.0.15; }
全栈程序员站长
2022/09/07
6.7K0
nginx负载均衡按照我说的做就ok
按照一定的算法【权重、轮询】,将客户端请求转发到不同应用服务器上,减轻单个服务器压力,提高系统并发量。
用户10183915
2022/11/11
3690
Nginx负载均衡简单配置
严格的说,Nginx仅仅是作为Nginx Proxy反向代理使用的。普通的负载均衡软件,例如LVS,其实现的功能只是对请求数据包的转发(也可能会改写数据包)、传递,其中DR模式明显的特征是从负载均衡下面的节点服务器来看,接收到的请求还是来自访问负载均衡的客户端的真实用户。而反向代理不一样,反向代理接收访问用户的请求后,会代理用户重新发起请求代理下的节点服务器,最后把数据返回给客户端用,在节点服务器看来,访问的节点服务器的客户端就是反向代理服务器了,而非真是的网络用户。
双面人
2019/10/24
8450
nginx负载均衡原理简介_nginx负载均衡配置详解
Nginx 可以基于ngx_http_upstream_module模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能
全栈程序员站长
2022/11/09
1.3K0
nginx负载均衡原理简介_nginx负载均衡配置详解
【Nginx】nginx简单入门,nginx负载均衡
配置好了之后,执行 nginx -t 检查配置是否有错,出现下面的提示则没有错误,有错误会写出错误多少行的
Alone88
2019/10/22
1.8K0
【Nginx】nginx简单入门,nginx负载均衡
相关推荐
深入剖析Nginx负载均衡算法
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文