左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家
180928 人已学习
新⼈⾸单¥98
登录后,你可以任选6讲全文学习
课程目录
已完结/共 119 讲
左耳听风
15
15
1.0x
00:00/00:00
登录|注册

26 | 分布式系统关键技术:流量与数据调度

数据结点的分布式方案
状态数据调度和分布式事务一致性问题
流量调度的功能和关键技术
流量调度和服务治理的区别
分布式存储系统的多样性
应用层和底层解决方案
底层数据存储方案
分布式存储系统的出现
数据结点自身解决数据Scale问题
两阶段提交和Paxos方案
解决数据不丢失的问题
数据副本和一致性
数据存储的瓶颈
转移问题
有状态的服务
服务化
业务逻辑
扛流量
高性能
流量管理
流量控制
服务流控
保护系统平稳运行
自动流量调度
流量调度是内部和外部接入层的事
服务治理是内部系统的事
小结
状态数据调度小结
数据结点的分布式方案
分布式事务一致性的问题
状态数据调度
流量调度的关键技术
流量调度的主要功能
流量调度与服务治理的区别
分布式系统关键技术:流量与数据调度

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

你好,我是陈皓,网名左耳朵耗子。
关于流量调度,现在很多架构师都把这个事和服务治理混为一谈了。我觉得还是应该分开的。一方面,服务治理是内部系统的事,而流量调度可以是内部的,更是外部接入层的事。另一方面,服务治理是数据中心的事,而流量调度要做得好,应该是数据中心之外的事,也就是我们常说的边缘计算,是应该在类似于 CDN 上完成的事。
所以,流量调度和服务治理是在不同层面上的,不应该混在一起,所以在系统架构上应该把它们分开。

流量调度的主要功能

对于一个流量调度系统来说,其应该具有的主要功能是:
依据系统运行的情况,自动地进行流量调度,在无需人工干预的情况下,提升整个系统的稳定性;
让系统应对爆品等突发事件时,在弹性计算扩缩容的较长时间窗口内或底层资源消耗殆尽的情况下,保护系统平稳运行。
这还是为了提高系统架构的稳定性和高可用性。
此外,这个流量调度系统还可以完成以下几方面的事情。
服务流控。服务发现、服务路由、服务降级、服务熔断、服务保护等。
流量控制。负载均衡、流量分配、流量控制、异地灾备(多活)等。
流量管理。协议转换、请求校验、数据缓存、数据计算等。
所有的这些都应该是一个 API Gateway 应该做的事。

流量调度的关键技术

但是,作为一个 API Gateway 来说,因为要调度流量,首先需要扛住流量,而且还需要有一些比较轻量的业务逻辑,所以一个好的 API Gateway 需要具备以下的关键技术。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

文章介绍了分布式系统中流量调度和数据调度的关键技术。作者首先强调了流量调度与服务治理的区别,指出流量调度应该是内部和外部接入层的事,而服务治理是内部系统的事,因此应该分开来看待。流量调度的主要功能包括自动调度系统、应对突发事件、服务流控、流量控制和流量管理。作者提到了API Gateway需要具备高性能、扛流量、简单的业务逻辑和服务化等关键技术。此外,对于有状态的服务调度和分布式事务一致性问题,文章也进行了深入探讨。最后,作者指出真正解决数据结点调度的方案应该是底层的数据结点,而中间件只是过渡技术。总的来说,本文深入浅出地介绍了分布式系统中流量调度和数据调度的关键技术,对于想要了解分布式系统架构的读者来说,是一篇值得阅读的文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《左耳听风》
新⼈⾸单¥98
立即购买
登录 后留言

全部留言(40)

  • 最新
  • 精选
  • 永靖
    APIGateway采用什么语音实现比较好?

    作者回复: 你说的是语言吧。C/C++、Java、Go。我觉的Go最好

    2017-12-27
    2
    30
  • Ryoma
    耗子哥觉得 Kong 这个API Gateway如何?

    作者回复: 挺好的

    2018-09-27
    11
  • javaworker
    耗子哥,一个服务号有1亿的关注关系,我们有5个类似的服务号,也就是有约5亿的关注关系,我们都存在一张表里了,这张表只做了分区。发送1亿条消息时,我们会反复的查这张表,所以这就是瓶颈,我打算把这张表的数据都存到redis里,分成多个list存,类似表的分区,发时多个线程并行发送,每个线程负责一个redis的list,这样设计可以吗,耗子哥?

    作者回复: 可以的。最好传文可灵活配置list大小的

    2018-03-13
    4
    9
  • javaworker
    耗子哥,请教个问题,我在做一个类似微信的app,公司有个需求,要求1亿条消息在5分钟内发送到用户,现系统1亿条消息大概需要1小时才能都发给用户,您能提示我一些优化方向吗,谢谢

    作者回复: 现在的具体瓶颈是……?

    2018-03-01
    5
  • 向飞
    收获很大,帮助将自己的很多知识点进行了系统化的梳理,理解更加清晰和深刻,非常感谢! 另外,megaease的“联系我们”部分有语病:这样能才提供最好的服务和支持。

    作者回复: 谢谢

    2018-04-03
    2
  • 水平有限这节没完全理解,记一笔,后面再看几遍
    2018-12-30
    12
  • 摇滚代码
    每一篇都值得精读,重复读
    2017-12-28
    12
  • springchan
    耗子哥,我想咨询个问题:以前你在微信朋友圈发过一个治疗痛风的药:GPro,效果如何?
    2018-05-22
    10
  • 西北偏北
    流量控制,采用api gateway 数据的分布式一致性和事务,应由数据组件自己负责,而不是在业务中,分库分表,这些思想体现在让功能分离,专业的组件做专业的事,从而才能那个不同的组件够精简,同时把自己关注的事情发挥到极致。
    2019-06-10
    5
  • 沙漠之鹰
    在 IaaS 层上解决这个问题,一般来说有三种方案,一种是使用比较廉价的开源产品,如:NFS、Ceph、TiDB、CockroachDB、ElasticSearch、InfluxDB、MySQL Cluster 和 Redis Cluster 之类的;另一种是用云计算厂商的方案。 耗子哥,这些应该是paas层吧
    2019-01-29
    1
    5
收起评论
显示
设置
留言
40
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部