[Golang] What is Golang
一、Golang实现分布式数据库
Update:
原问题还请教了有哪些开源项目可以参与实践,这个我了解不多,请有需要的看其它人的回答。
1. 相关的课程
Ref :Distributed-systems-readings
这个网址里收集了一堆美帝各TOP大学分布式相关的课程,我就是从这找到MIT的那门课的。
2. Paxos算法
要问为啥单独把这个算法拎出来。。。相信我,等你学到它就会明白,用Raft作者在论文里的话来说,“...Paxos is exceptionally difficult to understand”;但它又特别重要,目前商业应用(例如Google的Chubby)中的distributed consensus算法实现的基本都是Paxos的变种。
Paxos vs Raft
这个网站是Raft算法的作者为教授Paxos和Raft算法做的,其中有两个视频链接,分别讲上述两个算法,个人认为是目前看过的相关资料中讲的最好的。
500lines/cluster at master · aosabook/500lines · GitHub
当你把作业里的lab3做完,自己实现了一个Paxos之后,可以来Github上看看大牛是怎么写的。
顺便安利一下这个叫做“500lines”的项目:这个项目其实是一本书( The Architecture of Open Source Applications)的源代码附录,是一堆大牛合写的。这个项目个人觉得非常适合看完了一本编程语言教材、想写点实际的东西又不知道如何下手的同学们。里面包含了各种各样的小工程(正如书的名字所述,每个文件都不超过500行),每个小工程都是由某个大牛(比如说Guido van Rossum,Python的作者)负责撰写,包含详尽的测试代码,以及最重要的,文档——不是那种描述API的文档,而是用来教学的文档,里面会详细地解释整个工程的设计思路、所用技术的原理,还有大量的参考文献。
3. Youtube
好几次我碰到某篇论文实在读不懂,就上Google一搜,然后发现Youtube上一堆讲解这篇论文的视频。。。
4. Log为核心
The Log: What every software engineer should know about real-time data's unifying abstraction
这是Linkedin的某位工程师的一篇博客文章,文章认为Log应该作为分布式系统架构的核心,并举了他们使用的一个叫做Kafka的东西作为例子。文章写的贼长,但是通俗易懂,会把需要用到的基础知识都先交代清楚,不用担心看不懂。另外后面有成吨的参考文献和链接,涵盖了他们实现那个系统时涉及到的各种技术,很多都是经典的论文,个人觉得帮助很大。
原回答:
当然是刷这门课了:
MIT 6.824 Distributed System
6.824 Schedule: Spring 2015
这只是一个课程主页,没有上课的视频,但是并不影响你跟着它上课:每一周读两篇课程指定的论文,读完之后看lecture-notes里对该论文内容的讨论,回答里面的问题来加深理解,最后在课程lab里把所看的论文实现。当你把这门课的作业刷完后,你会发现自己实现了一个分布式数据库。
课程lab都是用Go写的,你可以从MIT的git服务器上把作业clone下来。每份作业都有详尽的指导意见,还配有详尽的测试代码,供你写完之后测试自己的实现是否正确。这些测试代码会在本地模拟分布式情况下可能碰到的各种问题(node crash、丢包、延迟、网络partition等等)。说实话我觉得这些测试代码的价值也很大,光是读这些代码就可以学到不少东西。
这门课的阅读量和coding量都不小,如果能坚持刷完相信题主对分布式系统的理解会加深不少。我目前刷了一半多了,lab也做了一半左右,整出了一个基于Paxos的key-value数据库,题主有兴趣的话可以一起刷。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律