轮询调度算法 Round Robin

最近重温了下nginx,看到负载均衡调度算法默认是round robin,也就是轮询调度算法。
算法本身很简单,轮着一个一个来,非常简单高效公平的调度算法。

简单的算法实现:

int datas = [1, 2, 3, 4, 5];
int size = 5;
...
...
...
int GetNextData()
{
	static int curIdx = 0;
	int nextData = datas[curIdx];
	curIdx = (curIdx + 1) % size;
	return nextData;
}

突然发现了一直被忽视的问题,为啥叫 round robin

robin 明明是旅鸫,亦称美洲知更鸟,与轮询一点关系都没有。在查询资料后发现这个单词来源挺有意思的,这里分享给大家。
round robin来源于法语ruban rond(round ribbon),意思是环形丝带。

在17、18世纪时法国农民希望以请愿的方式抗议国王时,通常君主的反应是将请愿书中最前面的两至三人逮捕并处决,所以很自然地没有人希望自己的名字被列在前面。为了对付这种专制的报复,人们在请愿书底部把名字签成一个圈(如同一条环状的带子),这样就找不出带头大哥,于是只能对所有参与者进行同样的惩罚。1731年,英国皇家海军最初使用了这个名词,以循环顺序签署请愿书,这样就没法找到带头大哥了。

非常贴切有木有,后端服务器轮着来处理请求,一个个都不要抢,都要出来接受处决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值