分布式系统发展史一览,内附全图
前段时间跟朋友圈里一个大佬约饭,席间聊到他最近面了一批分布式开发,但总觉着都不太合适,他们都能把概念说上来,可当你问到实质问题的时候又都在顾左右而言它,优秀的分布式人才还真是可遇不可求啊。
确实,随着分布式技术的不断发展,不仅是互联网公司, 物联网、移动计算、人工智能等新兴技术领域的布局在向分布式倾斜。哪怕近几年经济增速趋缓,巨头公司们依旧没有停下招兵买马的脚步。但分布式技术人才链却出现了供不应求的情况,说白了还是因为分布式技术的掌握实在是不太容易。
就说我自己吧,那时候虽然接触了一些业务功能开发和基础架构开发,算是在技术领域有一点深入的尝试了,但是我对分布式领域依然还有非常多的疑问。
比如没有绝对正确的分布式锁是真的吗?Google 说 Spanner 是一个全球分布式的 CA 系统,这个不是和 CAP 理论矛盾吗?在涉及到外部状态的情况下,怎么实现一个幂等的接口?分布式的场景下,事务是怎么实现的?共识算法和数据一致性到底是什么关系?......
这些问题一直困扰着我,我知道如果不能解决这些问题,我就不能算掌握了分布式技术,在以后的分布式系统开发中,很有可能就会因为自己知识系统上的漏洞而导致架构设计和具体实现上严重的问题。
我后来在知乎看到一个不错的帖子说,可以按照“两大体系,三大问题”来学,通过因果分析法首先打通分布式系统“分布式计算”和“分布式存储”两大脉络,然后从路由问题、共识问题和运维问题三大角度,对分布式系统知识点进行了交叉学习,最后形成整个网状知识体系。
所以只要我们弄懂这 12 个小的知识点,再结合业务场景实践,分布式系统的体系就建立起来了。
分享人是前小米资深工程师、伴鱼技术中台负责人陈现麟。最近极客时间邀请他专门做了一个分布式专栏——《深入浅出分布式技术原理》,提前看了下导读,好家伙,里面不但有高效完整的分布式学习路径,还有 30多个常见的业务场景,从简单到复杂把分布式系统的相关知识与原理统统讲清楚了。
尤其需要说的他对于分布式系统发展史做的总结,可以说是抓住了分布式技术的脉络和关键,让你不但知其然,而且能知其所以然。