分布式技术原理与算法解析
聂鹏程
智载云帆CTO,前华为分布式Lab资深技术专家
立即订阅
6054 人已学习
课程目录
已完结 39 讲
0/4登录后,你可以任选4讲全文学习。
课前必读 (3讲)
开篇词 | 四纵四横,带你透彻理解分布式技术
免费
01 | 分布式缘何而起:从单兵,到游击队,到集团军
02 | 分布式系统的指标:啥是分布式的三围
第一站:分布式协调与同步 (6讲)
03 | 分布式互斥:有你没我,有我没你
04 | 分布式选举:国不可一日无君
05 | 分布式共识:存异求同
06 | 分布式事务:All or nothing
07 | 分布式锁:关键重地,非请勿入
08 | 分布式技术是如何引爆人工智能的?
第二站:分布式资源管理与负载调度 (6讲)
09 | 分布式体系结构之集中式结构:一人在上,万人在下
10 | 分布式体系结构之非集中式结构:众生平等
11 | 分布式调度架构之单体调度:物质文明、精神文明一手抓
12 | 分布式调度架构之两层调度:物质文明、精神文明两手抓
13 | 分布式调度架构之共享状态调度:物质文明、精神文明多手协商抓
14 | 答疑篇:分布式事务与分布式锁相关问题
第三站:分布式计算技术 (4讲)
15 | 分布式计算模式之MR:一门同流合污的艺术
16 | 分布式计算模式之Stream:一门背锅的艺术
17 | 分布式计算模式之Actor:一门甩锅的艺术
18 | 分布式计算模式之流水线:你方唱罢我登场
第四站:分布式通信技术 (4讲)
19 | 分布式通信之远程调用:我是你的千里眼
20 | 分布式通信之发布订阅:送货上门
21 | 分布式通信之消息队列:货物自取
22 | 答疑篇:分布式体系架构与分布式计算相关问题
第五站:分布式数据存储 (5讲)
23 | CAP理论:这顶帽子我不想要
24 | 分布式数据存储系统之三要素:顾客、导购与货架
25 | 数据分布方式之哈希与一致性哈希:“掐指一算”与“掐指两算”的事
26 | 分布式数据复制技术:分身有术
27 | 分布式数据之缓存技术:“身手钥钱”随身带
特别放送 (3讲)
特别放送 | 分布式下的一致性杂谈
特别放送 | 徐志强:学习这件事儿,不到长城非好汉
特别放送 | 那些你不能错过的分布式系统论文
第六站:分布式高可靠 (5讲)
28 | 分布式高可靠之负载均衡:不患寡,而患不均
29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵
30 | 分布式高可用之故障隔离:当断不断,反受其乱
31 | 分布式高可用之故障恢复:知错能改,善莫大焉
32 | 答疑篇:如何判断并解决网络分区问题?
第七站:分布式核心知识串讲 (2讲)
33 | 知识串联:以购买火车票的流程串联分布式核心技术
34 | 搭建一个分布式实验环境:纸上得来终觉浅,绝知此事要躬行
结束语 (1讲)
结束语 | 为什么说提升职业竞争力要从尊重、诚实开始?
分布式技术原理与算法解析
登录|注册

29 | 分布式高可靠之流量控制:大禹治水,在疏不在堵

聂鹏程 2019-12-04
你好!我是聂鹏程。今天,我来继续带你打卡分布式核心技术。
在上一篇文章中,我带你学习了分布式高可靠中的负载均衡。负载均衡的核心在于,将用户请求均匀分配到多个处理服务器处理,以解决单个服务器的单点瓶颈问题。但,如果用户请求数非常多的话,即便实现了负载均衡,服务器能力达到上限,还是无法处理所有的用户请求。
比如,类似双十一、双十二的秒杀场景,用户流量突增时,即使做了负载均衡,我们仍然会感受到点击抢购时,需要等待较长的时间。这背后的原理是什么呢?
你是不是想到了,这是因为系统控制了用户的请求量呢?没错,这就是今天我们要一起打卡的流量控制技术。

什么是流量控制?

说到流量控制,如果你学过计算机网络的话,第一反应肯定是网络传输中的流量控制。网络传输中的流量控制,就是让发送方发送数据的速率不要太快,让接收方来得及接收数据,具体的实现方法就是滑动窗口。
简单来讲,滑动窗口指的是,在任意时刻,发送方都维持一个连续的允许发送的数据大小,称为发送窗口;接收方也会维持一个连续的允许接收的数据大小,称为接收窗口。每次发送方给接收方发送数据后,必须收到接收方返回的确认消息,发送窗口才可向后移动,发送新的数据。
接下来,我们通过一个简单的例子,来看看滑动窗口在网络流量控制中,是如何发挥作用的吧。如图所示,发送窗口和接收窗口大小均为 1,发送方发送数据 D1 后,只有接收到来自接收方的确认消息 ACK,发送窗口才可向后移动,即发送方才可以发送后续数据 D2。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《分布式技术原理与算法解析》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(10)

  • xingoo
    背压(反压),通过服务器端的性能监控,延迟客户端的发送请求,比如HBase的客户端提交过程,会参考服务端jvm,内存等的使用情况,决定客户端休眠多长时间。
    2019-12-04
    8
  • Jackey
    之前做商城的时候设计过限流系统,基本上就是这两种实现。稍微多做了一点就是我们在前端也做了一定的策略,就是把用户短时间内的请求合并,我们知道在秒杀的时候大多数人都会疯狂点秒杀按钮,而实际上可能只有第一次请求是有效的,因此前端可以做一个限制,这样可以有效减少发给服务器的请求数量
    2019-12-04
    2
  • 随心而至
    感觉Sentinel是针对ThreadPoolExecutor,以及使用的队列做了定制,不知道是不是这样
    2019-12-04
    1
  • 安排
    消息队列控制流量的策略本质也是漏桶吧?不管发给消息队列的速率是多大,服务器在消息队列中取出请求的速率是固定的。
    2019-12-04
    1
  • 鱼向北游
    netty的高水位不知道算不算流量控制的一种
    2019-12-08
  • 忆水寒
    配合看看实现源码更易懂哦
    2019-12-05
  • 有铭
    我有个疑惑,既然说令牌策略,一般把令牌数限制为系统最大处理能力略低一点的数目,那么我只要把漏桶策略的执行任务速度调整为令牌策略的令牌数目,那起的作用难道不是和令牌策略的作用相同,此时网盘感觉它们没区别啊
    2019-12-04
    5
  • tt
    听到了好几次关于令牌桶和漏桶的内容,这次明确了他们主要是为了高可靠而不是高性能和高可扩展性
    2019-12-04
  • 阿卡牛
    有个疑问:如果有线程池的话,其实就相当于在使用令牌桶策略了吧,线程相当于令牌,池中的线程用完了,新的请求要么拒绝要不等待。
    2019-12-04
    3
  • 阿卡牛
    这里说的流控和计算机网络中的流控有个最大的区别是:网络中的流控可以通过滑动窗口调节发送端的请求速率!
    2019-12-04
收起评论
10
返回
顶部