分布式系统学习路线求助
楼主是大四毕业生,最近准备工作了,联系了分到的工作团队主管,他告诉我需要熟悉的技术栈有spring、redis、zookeeper、thrift、dubbo这一类,我大学开发 c++比较多,spring 只接触过开发 web 系统(springboot/MVC),想问问各位大佬,我应该去学一些课程呢,还是去找一些项目直接上手,也想请各位推荐一些课程或项目,或者向大家取取经,想看看你们是怎么上手的
可以先看看这两块内容:
www.thebyte.com.cn/distributed-transaction/summary.html [分布式事务]
www.thebyte.com.cn/consensus/summary.html [分布式共识]
没有什么好看的,这些东西。
可以先看下 MIT 6.824 类似的课程
主要是毕业就要入职了,差不多就这两个月的时间先扫个盲,看这个课会不会太慢
先理解分布式思想,可以找找麦当劳经营模式解析,麦当劳本身就是分布式运营
icyfenix.cn/ 看这就可以,
你说的那几个东西就看下怎么用就可以了,了解一下都是干嘛的,用的时候现查是一样的
我觉得应该先高屋建瓴,有整体的认识(这方面我推荐大名鼎鼎的 ddia github.com/Vonng/ddia ,私以为是每个后端开发者必读),在重点选一个工作中涉及的核心组件深入(可以参考 crossoverjie.top/2024/11/20/ob/%E6%8E%A8%E8%8D%90%E4%B8%80%E4%BA%9B%E5%80%BC%E5%BE%97%E5%AD%A6%E4%B9%A0%E7%9A%84%E5%BC%80%E6%BA%90%E9%A1%B9%E7%9B%AE%E5%92%8C%E6%A1%86%E6%9E%B6/)
是不是跑偏了,你是想快速了解微服务相关的知识,而不是学习什么基础原理吧。自己搭一个 dubbo 服务,写个客户端调用一下。然后过一下官方文档,了解里面的一些概念。zk 、redis 这些也本地搭建一下,敲一敲命令,然后过一下官方文档基本就能上手了,再搜一下使用的最近实践。剩下的有空自己深入学习就行
你说的这些更像是微服务的东西,主要是应用,自己搭建玩玩就行,没啥理论的东西
凤凰架构楼上有人推荐了, icyfenix.cn/ 快速理解很合适,这个讲的不深,扫盲可以了
后面推荐看一本书《数据密集型应用系统设计》
分布式就是把各个服务分别部署在不同的机器上,微服务相当于是分布式的一个子集,各个服务通过网关和注册中心联系起来.这些东西,自己网上随便找一个开源的项目看看就行,比如说 Ruoyi doc.ruoyi.vip/ruoyi-cloud/
我觉得可以借助 AI 在这些技术栈的基础上生成一个 demo 系统熟悉技术栈,刚毕业进去肯定是 CRUD ,知道大概的流程就可以
看看 raft raft.github.io/raft.pdf
没太明白你的需求啊。从标题看你需要学习分布式系统的理论和实践,那你看看这本书《数据密集型应用系统设计》,然后将这些理论知识引用到这些组件中(zookeeper 、thrift 、dubbo)去体会就好啦。
但是看你的具体描述,好像得先胜任工作吧。那就去学 java ,spring 这些。找点小项目自己跑跑看,然后写一个小模块,完成个增删改查啥的。把那些组件接入进来,先用起来呗。
分布式系统是一个非常非常庞大的知识体系,你说的那些只是工具的应用。比如各种用于实现全序的共识算法( raft 、pbft ),acid 事务和 base 事务(金融系统里会用到),多阶段提交,全序事件偏序事件(涵盖了共识算法,google 原子钟和向量时钟),还有分布式计算( dag 模型的并行计算)。推荐的书就是把常见的分布式系统的论文和 ppt ,还有一本《数据密集型应用系统设计》,这个可以在未来进阶的时候再看。
遗憾的是,项目里你一般不会用到以上知识,因为这些知识太高深了,可能至少 5 年经验甚至 10 年经验才有机会设计出使用这些知识的项目。
至于如何上手,先学会应用吧,实际上新手用到的一般是分布式锁、分布式配置,要解决的比如多进程启动但实际只需要一个进程这种很简单却很容易引入 bug 的问题。再想进阶的话就需要自己深入思考了,对于平时分布式系统中的问题考虑如何解决,对复杂系统架构进行设计。
估计你是希望能够过试用期或者表现好点这样,不拖团队后腿,建议可以再多和主管聊聊,别闷头干了一通结果发现自己理解的和实际的不一致,去了解业务场景和团队技术栈,之后可能会分配你做什么任务或者负责哪块功能,做好这些功课后去把涉及到的技术都在自己环境里跑通,然后有空再去看看楼上大佬们说的凤凰架构和动物书
谢谢各位大佬的回复,现在主要在做毕设,只是最近和主管聊了一下入职相关事宜,我先用空闲时间理解一下凤凰架构,如果论文写的快我会去联系实习,谢谢大家了
e t c d
我以前做分布式存储 ceph 的。这个方向是走 linux c++的 比较符合你的技术栈。 可以看看。而且做 ceph 的待遇也不错。就是可能公司不是那么多。
数据密集型应用系统设计::数据系统基础 | Y.CH.Y
数据密集型应用系统设计::分布式数据系统 | Y.CH.Y
数据密集型应用系统设计::派生数据 | Y.CH.Y 以前记过的 ddia 的笔记
roadmap.sh 推荐个学习路线网站
上 mit 看 6.824 ,现在改成 6.8540 了,推荐 2020 年版本,RobertMorris (蠕虫病毒作者)主讲
官网 nil.csail.mit.edu/6.824/2020/
B 站 www.bilibili.com/video/BV1R7411t71W
至少跟着做到 lab2c
做到 lab2 的时候就可以开始看 ddia 了 github.com/Vonng/ddia ,然后 6.824 和 ddia 的进度齐头并进
各位在公司里的 nodejs 后端项目,怎么生成的接口文档?排除 nest.js 和 jsdoc 的方式。 有没有正经开发 nodejs 后端的老哥帮忙看看 不用 sw…
如题,新手前端,感觉前端的大部分文档有大段地文字介绍也有 demo 代码,很好理解。但是 go 的大部分文档看着有点像 ts 定义,文档介绍每个方法也没有提供 demo 供参考…
半夜突发奇想, 能否让 cursor 帮我写一个 cursor, trae 写一个 trae, Manus 写一个 Manus 出来? 或者让 cursor 写一个 trae…
合速度