左耳听风
陈皓
网名“左耳朵耗子”,资深技术专家,骨灰级程序员
立即订阅
40357 人已学习
课程目录
已完结 108 讲
0/6登录后,你可以任选6讲全文学习。
开篇词 | 洞悉技术的本质,享受科技的乐趣
免费
01 | 程序员如何用技术变现(上)
02 | 程序员如何用技术变现(下)
03 | Equifax信息泄露始末
04 | 从Equifax信息泄露看数据安全
05 | 何为技术领导力?
06 | 如何才能拥有技术领导力?
07 | 推荐阅读:每个程序员都该知道的知识
08 | Go语言,Docker和新技术
09 | 答疑解惑:渴望、热情和选择
10 | 如何成为一个大家愿意追随的Leader?
11 | 程序中的错误处理:错误返回码和异常捕捉
12 | 程序中的错误处理:异步编程以及我的最佳实践
13 | 魔数 0x5f3759df
14 | 推荐阅读:机器学习101
15 | 时间管理:同扭曲时间的事儿抗争
16 | 时间管理:如何利用好自己的时间?
17 | 故障处理最佳实践:应对故障
18 | 故障处理最佳实践:故障改进
19 | 答疑解惑:我们应该能够识别的表象和本质
20 | Git协同工作流,你该怎么选?
21 | 分布式系统架构的冰与火
22 | 从亚马逊的实践,谈分布式系统的难点
23 | 分布式系统的技术栈
24 | 分布式系统关键技术:全栈监控
25 | 分布式系统关键技术:服务调度
26 | 分布式系统关键技术:流量与数据调度
27 | 洞悉PaaS平台的本质
28 | 推荐阅读:分布式系统架构经典资料
29 | 推荐阅读:分布式数据调度相关论文
30 | 编程范式游记(1)- 起源
31 | 编程范式游记(2)- 泛型编程
32 | 编程范式游记(3) - 类型系统和泛型的本质
33 | 编程范式游记(4)- 函数式编程
34 | 编程范式游记(5)- 修饰器模式
35 | 编程范式游记(6)- 面向对象编程
36 | 编程范式游记(7)- 基于原型的编程范式
37 | 编程范式游记(8)- Go 语言的委托模式
38 | 编程范式游记(9)- 编程的本质
39 | 编程范式游记(10)- 逻辑编程范式
40 | 编程范式游记(11)- 程序世界里的编程范式
41 | 弹力设计篇之“认识故障和弹力设计”
42 | 弹力设计篇之“隔离设计”
43 | 弹力设计篇之“异步通讯设计”
44 | 弹力设计篇之“幂等性设计”
45 | 弹力设计篇之“服务的状态”
46 | 弹力设计篇之“补偿事务”
47 | 弹力设计篇之“重试设计”
48 | 弹力设计篇之“熔断设计”
49 | 弹力设计篇之“限流设计”
50 | 弹力设计篇之“降级设计”
51 | 弹力设计篇之“弹力设计总结”
52 | 管理设计篇之“分布式锁”
53 | 管理设计篇之“配置中心”
54 | 管理设计篇之“边车模式”
55 | 管理设计篇之“服务网格”
56 | 管理设计篇之“网关模式”
57 | 管理设计篇之“部署升级策略”
58 | 性能设计篇之“缓存”
59 | 性能设计篇之“异步处理”
60 | 性能设计篇之“数据库扩展”
61 | 性能设计篇之“秒杀”
62 | 性能设计篇之“边缘计算”
63 | 区块链技术的本质
64 | 区块链技术细节:哈希算法
65 | 区块链技术细节:加密和挖矿
66 | 区块链技术细节:去中心化的共识机制
67 | 区块链技术细节:智能合约
68 | 区块链技术 - 传统金融和虚拟货币
69 | 程序员练级攻略:开篇词
70 | 程序员练级攻略:零基础启蒙
71 | 程序员练级攻略:正式入门
72 | 程序员练级攻略:程序员修养
73 | 程序员练级攻略:编程语言
74 | 程序员练级攻略:理论学科
75 | 程序员练级攻略:系统知识
76 | 程序员练级攻略:软件设计
77 | 程序员练级攻略:Linux系统、内存和网络
78 | 程序员练级攻略:异步I/O模型和Lock-Free编程
79 | 程序员练级攻略:Java底层知识
80 | 程序员练级攻略:数据库
81 | 程序员练级攻略:分布式架构入门
82 | 程序员练级攻略:分布式架构经典图书和论文
83 | 程序员练级攻略:分布式架构工程设计
84 | 程序员练级攻略:微服务
85 | 程序员练级攻略:容器化和自动化运维
86 | 程序员练级攻略:机器学习和人工智能
87 | 程序员练级攻略:前端基础和底层原理
88 | 程序员练级攻略:前端性能优化和框架
89 | 程序员练级攻略:UI/UX设计
90 | 程序员练级攻略:技术资源集散地
91 | 程序员面试攻略:面试前的准备
92 | 程序员面试攻略:面试中的技巧
93 | 程序员面试攻略:面试风格
94 | 程序员面试攻略:实力才是王中王
95 | 高效学习:端正学习态度
96 | 高效学习:源头、原理和知识地图
97 | 高效学习:深度,归纳和坚持实践
98 | 高效学习:如何学习和阅读代码
99 | 高效学习:面对枯燥和量大的知识
左耳听风
登录|注册

81 | 程序员练级攻略:分布式架构入门

陈皓 2018-07-10
学习分布式系统跟学习其它技术非常不一样,分布式系统涵盖的面非常广,具体来说涵盖如下几方面:
服务调度,涉及服务发现、配置管理、弹性伸缩、故障恢复等。
资源调度,涉及对底层资源的调度使用,如计算资源、网络资源和存储资源等。
流量调度,涉及路由、负载均衡、流控、熔断等。
数据调度,涉及数据复本、数据一致性、分布式事务、分库、分表等。
容错处理,涉及隔离、幂等、重试、业务补偿、异步、降级等。
自动化运维,涉及持续集成、持续部署、全栈监控、调用链跟踪等。
所有这些形成了分布式架构的整体复杂度,也造就了分布式系统中的很多很多论文、图书以及很多很多的项目。要学好分布式系统及其架构,我们需要大量的时间和实践才能真正掌握这些技术。
这里有几点需要你注意一下。
分布式系统之所以复杂,就是因为它太容易出错了。这意味着,你要把处理错误的代码当成正常功能的代码来处理
开发一个健壮的分布式系统的成本是单体系统的几百倍甚至几万倍。这意味着,我们要自己开发一个,需要能力很强的开发人员
非常健壮的开源的分布式系统并不多,或者说基本没有。这意味着,如果你要用开源的,那么你需要 hold 得住其源码
管理或是协调多个服务或机器是非常难的。这意味着,我们要去读很多很多的分布式系统的论文
在分布式环境下,出了问题是很难 debug 的。这意味着,我们需要非常好的监控和跟踪系统,还需要经常做演练和测试
在分布式环境下,你需要更科学地分析和统计。这意味着,我们要用 P90 这样的统计指标,而不是平均值,我们还需要做容量计划和评估
在分布式环境下,需要应用服务化。这意味着,我们需要一个服务开发框架,比如 SOA 或微服务
在分布式环境下,故障不可怕,可怕的是影响面过大,时间过长。这意味着,我们需要花时间来开发我们的自动化运维平台
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《左耳听风》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(18)

  • 刘強
    皓哥,一直对你以前提到过的网络优化那个例子耿耿于怀。就是优化完了,给你20万的那个。一直看书,一直找答案,还是不明白,你优化是优化的哪一个层次上的数据包?你说保证在一个MTU中传完,这个应该是链路层最大能传输的帧大小,按理说应用层以下,应该不受我们控制了,更不用说链路层了。应用层顶多就是对socket读写数据流。在应用层,不管我们怎么传数据,都到了底层缓冲区里面了,然后就不受我们控制了,交给tcp了。到底是怎么做的?麻烦皓哥给几个关键字就行,剩下我自己学。此疑问让我茶饭不思,百受折磨。望皓哥指点一二啊
    2018-07-11
    34
  • 无故
    耗子哥,有大数据相关的吗?
    2018-07-10
    6
  • manx00
    这几天的练级攻略看得热血沸腾,感谢分享这么多系统的知识点并指出练级路线。我在开始订阅了这个专栏后,曾经一度放弃,不是因为里面的东西无用,而是太干了,干得我感觉面对的是一座大山,很无力。这几天看了练级攻略,看清楚了自己真实的水平,让自己的热血再次燃起来,接下来就是认鼓励一下自己认真学习起来,有大牛带路对我这种野路子奋斗的人简直是照出了一条阳光大道!
    2018-07-11
    5
  • 永光
    信息量太大了,感觉有点吃力。
    2018-07-10
    4
  • ruby
    干货满满,好好学习~
    2018-07-10
    4
  • 无扬
    皓叔,您好,有个问题想要咨询皓叔的意见。
    我刚毕业工作3个月,java后端。老板问我对Scala有没有兴趣,有个爬虫的项目是Scala做的问我想不想接手,我有点拿不定主意。我自己是想要朝着更高层次的技术去发展的,但是感觉目前的话java也还没有太扎实,又去研究Scala会不会两头都没有很深入了,想要咨询下皓叔的意见。
    2018-07-10
    2
  • sam
    耗子叔,实在很👍,信息量好大,您是如何收集这么多知识的?
    2018-07-11
    1
  • 山哥
    分布式涵盖技术太多,我觉得只要专注在一二个领悟就可以了,其他领悟作为广度研究,毕竟精力有限,你觉得呢?
    2018-07-11
    1
  • Ivan Fan🐶
    希望也能介绍一下c++和java low latency的学习路线
    2018-07-10
    1
  • libertys
    我惊讶一个人怎么能掌握这么多的知识并且给出对一个知识点不同层次的建议,应该不是只有一个在出这个专栏吧,老师的后面应该有团队的力量吧
    2019-10-30
  • edisonhuang
    分布式系统涉及到服务管理,资源调度,流量调度,数据调度,自动运维等各个方面,而分布式系统本身是非常容易出错的,我们必须把错误处理当作正常逻辑来写。在分布式系统这条路上,所学的路标在文章里列出,需要我等继续努力
    2019-08-20
  • 隆龙
    皓哥,http://www.slideshare.net/jboner/scalability-availability-stability-patterns,这个网站不能访问是需要跳墙吗?
    2019-07-17
  • 涛哥迷妹
    这篇文章质量很高给出了分布式架构基本理论还有一个ppt比较好涵盖分布式架构知识图谱,便于理解。
    github那个也不错分布式架构知识体系梳理
    2019-07-05
  • godtrue
    感觉自己是积极努力的,但水平一般般,一直觉得自己可能智力不行,今天看知乎上的相关话题,感觉多了些信心,智力即生命力,始于受精卵至于死亡,环境因素对人的影响也是巨大的,幸好自己爱学习,有好奇心,现在看专栏后感觉更有方向了。加油💪
    2019-01-09
  • saneryee
    修改后的加勒思·威尔逊链接还是不对,与 Fallacies of Distributed Computing Explained 重复了,两个链接是同一篇文章。
    2018-11-07
  • Yujs
    干活满满啊 感觉学会遥遥无期
    2018-07-22
  • £
    同求大数据相关,网上找的都是些零零散散的东西,希望耗子哥借着这两次的分布式说一下大数据
    2018-07-16
  • 墨梵
    耗叔这篇入门篇干货满满,入门+经典理论,后续会不会有些好的分布式开源系统方面的专题介绍?最好是新人友好地容易理解和掌握的开源小项目,便于练手实践
    2018-07-13
收起评论
18
返回
顶部