18 | 如何使用负载均衡算法?
胡忠想
该思维导图由 AI 生成,仅供参考
假设你订阅了一个别人的服务,从注册中心查询得到了这个服务的可用节点列表,而这个列表里包含了几十个节点,这个时候你该选择哪个节点发起调用呢?这就是今天我要给你讲解的关于客户端负载均衡算法的问题。
为什么要引入负载均衡算法呢?主要有两个原因:一个是要考虑调用的均匀性,也就是要让每个节点都接收到调用,发挥所有节点的作用;另一个是要考虑调用的性能,也就是哪个节点响应最快,优先调用哪个节点。
不同的负载均衡算法在这两个方面的考虑不同,下面我就来能给介绍常见的负载均衡算法及其应用场景。
常见的负载均衡算法
1. 随机算法
随机算法,顾名思义就是从可用的服务节点中,随机挑选一个节点来访问。
在实现时,随机算法通常是通过生成一个随机数来实现,比如服务有 10 个节点,那么就每一次生成一个 1~10 之间的随机数,假设生成的是 2,那么就访问编号为 2 的节点。
2. 轮询算法
轮询算法,顾名思义就是按照固定的顺序,把可用的服务节点,挨个访问一次。
在实现时,轮询算法通常是把所有可用节点放到一个数组里,然后按照数组编号,挨个访问。比如服务有 10 个节点,放到数组里就是一个大小为 10 的数组,这样的话就可以从序号为 0 的节点开始访问,访问后序号自动加 1,下一次就会访问序号为 1 的节点,以此类推。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
负载均衡算法在服务节点众多时起着关键作用,本文介绍了常见的负载均衡算法,包括随机算法、轮询算法、加权轮询算法、最少活跃连接算法和一致性hash算法,并分析了它们的应用场景。文章还提到了自适应最优选择算法,适用于服务节点数量众多、性能差异大、节点列表经常变化和复杂网络情况下的场景。这些算法在RPC调用和负载均衡组件中得到广泛应用,但需要根据具体业务场景选择合适的算法来实现负载均衡。文章还提到了硬件负载均衡器与软件层面的负载均衡算法的不同之处。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《从 0 开始学微服务》,新⼈⾸单¥59
《从 0 开始学微服务》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(17)
- 最新
- 精选
- 魏颖琪在加权轮询算法中,通过一个随机数去访问生成序列,就不需要考虑生成序列的顺序是否合理的问题。
作者回复: 那就不是轮询了吧
2018-10-0244 - arebya“在实际设定时,可以设置 20% 性能较差的节点权重为 3,其余节点权重为 5” 这个有什么依据吗?
作者回复: 经验判断,2/8原则,不一定严格按照这个设定
2018-10-103 - A星空之夜motan中有对自适应最优选择算法的支持吗
作者回复: 目前只在微博内部版本有使用,还没有对外开源
2018-10-031 - xuanyuan让客户端实现负载均衡策略,难道新浪就是这么玩的?
作者回复: java版本motan是这么实现的
2018-10-29 - 波波安1、f5一般用在四层负载,软负载一般用在七层负载 2、f5性能和功能都很强大,但是设备价格昂贵。软负载成本低,而且可以横向扩展,功能可定制化开发,更加灵活。2018-10-1429
- 正是那朵玫瑰老师有几个疑问? 最少活跃连接算法:客户端是怎么知道提供者有多少连接呢? 自适应最优选择算法:性能好坏是根据提供的响应时间抽样统计吗?还是要提供者提供相应的接口给客户端调用来同统计?2018-10-11311
- Ellison最少活跃连接之前老师说过,每一次来一个请求就会+1, 请求完返回就会-1,白学了,二楼2019-04-0129
- 木木木F5应用在网络的三层(网络层),可通过ip重写来实现负载均衡,优势是应用逻辑无关性,性能超高。缺点就是贵,而且没法订制,因为对传输层和应用层都不了解,没法根据特定应用比如url做负载均衡。 软负载一般工作在四层或七层,haproxy或niginx,优势是可定制性强,成本低。2019-02-125
- lwt自适应最优算法中,是通过哪些指标去衡量服务提供者当前的性能的呢?2018-10-084
- 钱原理讲的通俗易懂,赞👍,具体咋实现自己玩吧! 软硬件的负载均衡都没直接实现过,推测硬件性能更好价格更高比较硬不灵活。2019-06-151
收起评论