Nginx负载均衡代码之加权轮询

本文介绍了Nginx中加权轮询负载均衡的工作原理,包括其无状态调度特性、主要变量如weight、effect_weight和current_weight的作用,以及轮询过程的详细步骤。文中还提供了一个权重分配的例子,展示不同权重服务器在轮询过程中的状态变化。
摘要由CSDN通过智能技术生成

1. 简介:

       加权轮询以轮询的方式对不同的服务器进行调度,并不记录当前服务器的状态,是一种无状态的调度方法。在Nginx中,当调度后的服务器执行失败后,会通过对权重的控制来简单控制服务器状态。

2. 主要变量:

        控制权重的主要三个变量:
1) weight:表示配置的权重原始值,不参与实际调度过程,主要用于当服务器执行失败以后的权重衰减后恢复过程的最大值。
2) 
effect_weight:当前权重的有效值,初始化时设置为配置的权重值,当调度到的服务器执行失败后,有效权重会衰减,并在后续调度过程中逐渐恢复。
3) 
current_weight:当前的权重值,每轮调度时会加上有效权重,当服务器被选择时,会衰减一个值(本轮有效总权重)。

3. 轮询过程:

        轮询主要在两个函数中完成,ngx_http_upstream_get_round_robin_peer是主要入口,主要处理了单机场景以及轮询结果的返回。ngx_http_upstream_get_peer这个函数实现实际的轮询过程。
1) ngx_http_upstream_get_round_robin_peer:

if (peers->single) {
    peer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值