嗨 各位小伙伴儿 大家好
今天和大家分享下关于负载均衡我的想法
了解多种负载均衡算法后,发现每种多少都存在一定的缺陷,不知道小伙伴儿们所在公司,如何处理的?可以分享下~ 哈
各算法优缺点,大家自行Google啊
我司目前采用的是“最小响应时间”算法,不过我看到了一点问题:
1.假设a,b,c三个节点,目前的最小响应时间分别为1s、2s、10s(实际可能是毫秒/微妙级别哈),如果后续多数业务均在5s内响应,那我们可以看到几乎没c节点数目事了,理论上负载均衡降低了接近1/3
2.若此时几万并发到系统,在下一次响应前,很可能会都落在a节点,暂且不说能不能扛得住,性能肯定大打折扣了
我做了些尝试,和大家分享下~,有误的地方,还请赐教,共同学习探讨~
核心思想:请求应被分配到【最小响应时间 * 当前活跃数】的最小值对应的节点
如下图左上角示例,a,b,c三个节点,最后一次响应时间分别为1s、2s、10s,就最后一次处理的性能而言,a是b的2倍,是c的10倍,即a处理10个请求相当于b处理5个c处理1个,在第11s时三个节点同时完成请求,同时进入空闲期,相对保障了平衡
注意点:节点被分配请求后,先对其活跃数+1,以免出现响应前大量并发同时被分配到该节点的状况,响应时间在响应前仍集成最后一次的,待响应后再更新
欢迎评论指正~
网友评论