分布式技术原理与算法解析
聂鹏程
智载云帆 CTO,前华为分布式 Lab 资深技术专家
39663 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 43 讲
分布式技术原理与算法解析
15
15
1.0x
00:00/00:00
登录|注册

28 | 分布式高可靠之负载均衡:不患寡,而患不均

加权轮询
顺序轮询
哈希和一致性哈希策略
随机策略
轮询策略
数据负载均衡
请求负载均衡
思考题
分布式系统中的负载均衡
请求所需资源不同的负载均衡策略
对比分析
服务请求的负载均衡方法
什么是负载均衡
故障恢复
故障隔离
流量控制
负载均衡
分布式可靠性
分布式数据存储
分布式通信技术
分布式计算技术
分布式资源管理与负载调度
分布式协调与同步
分布式起源
总结
知识扩展
负载均衡
分布式系统的可靠性
分布式系统
分布式系统中的负载均衡

该思维导图由 AI 生成,仅供参考

你好!我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
到目前为止,我已经为你介绍了分布式起源、分布式协调与同步、分布式资源管理与负载调度、分布式计算技术、分布式通信技术和分布式数据存储。可以说,掌握了这些内容,基本上就掌握了分布式的关键技术。
然而,只有可靠的分布式系统才能真正应用起来。那么,分布式系统的可靠性又是如何实现的呢?
不要着急,接下来几篇文章,我会和你一起学习分布式可靠性相关的知识,包括负载均衡、流量控制、故障隔离和故障恢复。
在这其中,负载均衡是分布式可靠性中非常关键的一个问题或技术,在一定程度上反映了分布式系统对业务处理的能力。比如,早期的电商抢购活动,当流量过大时,你可能就会发现有些地区可以购买,而有些地区因为服务崩溃而不能抢购。这,其实就是系统的负载均衡出现了问题。
接下来,我们就一起来打卡分布式高可靠之负载均衡。

什么是负载均衡?

先举个例子吧。以超市收银为例,假设现在只有一个窗口、一个收银员:
一般情况下,收银员平均 2 分钟服务一位顾客,10 分钟可以服务 5 位顾客;
到周末高峰期时,收银员加快收银,平均 1 分钟服务一位顾客,10 分钟最多服务 10 位顾客,也就是说一个顾客最多等待 10 分钟;
逢年过节,顾客数量激增,一下增加到 30 位顾客,如果仍然只有一个窗口和一个收银员,那么所有顾客就只能排队等候了,一个顾客最多需要等待 30 分钟。这样购物体验,就非常差了。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

负载均衡在分布式系统中扮演着至关重要的角色,通过将用户请求或数据均匀地分发到多台服务器或存储节点上,以实现高并发的请求处理和避免系统崩溃。本文从超市收银的例子出发,生动地解释了负载均衡的基本原理:“不患寡,而患不均”。在分布式系统中,负载均衡主要分为请求负载均衡和数据负载均衡两种类型,而在中间件层,常见的负载均衡策略包括轮询、随机、哈希和一致性哈希等。通过本文,读者可以快速了解负载均衡的基本概念和在分布式系统中的重要性,为进一步学习分布式可靠性相关知识奠定基础。 本文详细介绍了负载均衡的几种常见策略,包括轮询策略、随机策略、哈希和一致性哈希策略。轮询策略通过服务器轮流处理用户请求,实现请求的均衡分配,适用于用户请求资源接近的场景;随机策略则将用户请求随机分发到不同节点,适用于服务器节点处理能力相差不大的场景。而哈希和一致性哈希策略则适用于有状态请求的场景,通过合理设置哈希函数实现负载均衡,但也存在数据迁移和数据倾斜等问题。这些策略各有优劣,适用于不同的分布式系统场景,读者可以根据实际需求选择合适的负载均衡策略。 文章还提到了解决请求所需资源不同造成的不均衡问题的方法,包括单体调度、最差匹配和最佳匹配算法,以及一致性哈希策略。这些方法可以有效地解决资源不均衡的问题,为读者提供了更多的思路和选择。 总的来说,本文通过生动的例子和详细的介绍,使读者快速了解了负载均衡在分布式系统中的重要性以及常见的负载均衡策略,为进一步深入学习和应用分布式系统提供了基础知识和思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式技术原理与算法解析》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(12)

  • 最新
  • 精选
  • Jackey
    对一致性哈希+资源那有点不理解。想请问老师和各位大佬,如果空闲资源相同的话,是不是还要加入其他影响因素,否则多个节点在环中就等同于一个节点了。另外空闲资源一直在动态变化,这样还能保证相同的key的请求落在同一个节点吗?

    作者回复: 是从多个纬度考虑,资源,节点id等多维度考虑

    2019-12-02
    2
  • 科科
    之前读陈述老师的高性能Linux服务端设计,研究分析了各种类型的服务端模型。 多进程的好处就是可以提高可用性,其实我们的分布式技术的话,也算是多进程的一种任务模型。同一台机器多进程来处理业务会产生会有限制。 现在我们可以增加多个节点,多台主机这样就产生了对分布式程序的需求。任务均分到各个机子上,可以提高整个系统的吞吐量,提升响应速度。同时均分也可以更好的利用所有节点的一个CPU的性能,不会出现局部空闲情况。 最后氛围多进程还是能提高的可用性,鸡蛋不要放在同一个篮子里

    作者回复: 👍👍

    2020-06-03
    1
  • Dale
    1、提高系统的可靠性,避免出现单点故障 2、作为对外请求的统一入口,安全可控 3、通过添加或减少服务器数量,系统可以方便伸缩
    2020-01-20
    7
  • 随心而至
    提高可用性。 假如一个实例挂了,可以自动切换到其他实例,对系统整个影响不会太大。
    2019-12-02
    2
  • 在分布式系统中,负载均衡技术除了各节点共同分担请求外,还有什么好处呢? 1:提高性能 2:提高吐出量 3:提高系统可用性,7*24的服务保障就是这么来的 4:提高扩展性,加减机器比较容易 5:提高系统的可维护性,摘除异常机器简单 6:提高安全性,统一的对外请求入口,更容易控制 负载均衡方法小结: 1:随机 一般随机 2:轮询 顺序轮询 加权轮询 平滑加权轮询 3:哈希 一般哈希 一致性哈希 带负载的一致性哈希 带虚拟节点的一致性哈希 4:根据特定资源类型或者特点业务类型进行请求的分发
    2020-02-20
    1
  • Leric
    基于随机数的负载均衡也是可以实现带权重的负载分配的呀
    2022-07-23
  • 许凯
    可以提高系统的高可用、高性能、高扩展,同时消耗更多能量,安全性和监控变复杂
    2020-06-12
  • 88591
    1、提供统一入口,增加易用性,方便统一管理。 2、增加系统的容错能力,减少单点故障,提高可靠性 3、还可以增加系统的可扩展性。可以动态增加减少节点
    2020-04-07
  • Eternal
    负载均衡是分布式系统实现高可用的前提,没有它就只能玩单机了,
    2019-12-08
  • leslie
    典型且常规的负载均衡其实就是读写分离:现实场景中的多种负载均衡同时存在;这种平衡性我觉得很多时候才是难以把握的方面。web层大多用的是轮询策略、DB层大多是哈希和一致性策略,站在整体系统架构的角度,各种轮询负载均衡的合理使用我觉得这是最难的地方。
    2019-12-03
收起评论
显示
设置
留言
12
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部