getfromcode

go从零实现分布式 KV数据库

后端开发
课程简介

这门课解决什么问题 当你需要在生产环境部署一个多副本、强一致性的键值存储,却不确定raft协议具体怎么把日志复制到多数派节点、选举超时怎么调、leader切换后客户端怎么处理,这门课就是为这个场景准备的。 它不是讲raft的理论综述,也不是讲KV数据库的产品设计。它要求你 用Go把raft协议、KV存储、客户端路由、分片controller这些模块从源码层…

已有 30 人浏览 发布 2026-03-01 更新 2026-09-29

这门课解决什么问题

当你需要在生产环境部署一个多副本、强一致性的键值存储,却不确定raft协议具体怎么把日志复制到多数派节点、选举超时怎么调、leader切换后客户端怎么处理,这门课就是为这个场景准备的。

它不是讲raft的理论综述,也不是讲KV数据库的产品设计。它要求你用Go把raft协议、KV存储、客户端路由、分片controller这些模块从源码层面拼起来,让你在动手过程中理解raft的复制日志、持久化、选主、快照这些机制到底长什么样,以及它们和KV读写、shard分片之间怎么衔接。

适合什么基础

  • 用过Go,能看懂接口和goroutine的基本用法
  • 读过Raft论文,知道什么是term、日志条目、领导者日志复制,但不要求能把raft从头推导出
  • 有TCP服务、序列化、文件存储的工程经验,知道raft需要持久化日志、需要网络通信、需要快照压缩

如果只会写HTTP接口却看不懂raft的选主和复制,这门课帮你补上raft的工程实现层;如果只会raft却不会写KV存储,这门课帮你补上KV和raft的对接。

建议先看哪几块

  • Raft论文解读 + 状态转换:先理解raft的核心状态机和日志复制语义,这是后面所有实现的基石
  • KVraft 概述 + Client端处理:建立raft和KV的对应关系,理解读写请求怎么变成raft日志条目,客户端怎么跟随leader
  • KVraft Server端处理 + 带snapshot的KVraft实现:这是核心实现块,理解leader怎么处理读写、日志怎么持久化、怎么生成快照
  • shard controller + shardkv单Group逻辑:最后理解多group分片架构,把单group raft和分布式KV拼成完整系统

学完能独立做什么

学完能独立写出raft协议的KV存储服务:客户端发读写请求到leader,leader把请求编码成日志条目复制到多数派节点,多数派选新leader后提交请求,返回结果;leader崩溃后raft选主恢复,未提交的日志用snapshot回滚。加上shard controller实现多group分片,能在本地跑起一个带多副本、强一致性的KV集群,能处理leader切换、节点宕机、日志膨胀等raft常见问题。

资料怎么配合练习

资料以raft模块和KV模块的源码实现为主,建议边看边动手:每看完一个状态转换,对照raft源码里对应的状态机代码;看完KVraft的Client/Server处理,试着改一个bug或加一个日志压缩的实现;看完shardkv单Group逻辑,再对照shard controller理解多group如何路由。

课程目录:

├──kv视频鈹溾攢鈹€01. Raft 璁烘枃瑙h.mp4 91.51M├──15. Raft PartC 实现和优化.mp4 120.59M├──22 基于 raft 的分布式 KV 概述.mp4 23.99M├──26 带 snapshot 的 kvraft 实现.mp4 42.18M├──32 shardkv 配置变更.mp4 865.19M├──33 shardkv 分片迁移.mp4 1019.99M鈹溾攢鈹€35 shardkv 琛ュ厖淇敼.mp4 501.39M├──‍11. Raft PartB 选举日志比较.mov 355.93M├──‍‬‬‍‬18. Raft PartD 日志重构.mov 2.16G├──09. Raft PartB 结构调整.mp4 23.44M├──10. Raft PartB 日志复制.mp4 92.49M├──12. Raft PartB 日志应用.mov 711.64M├──19. Raft PartD 快照数据流.mp4 94.09M├──25 kvraft 的节点故障与重复请求.mp4 661.59M├──30 shard controller 的状态机处理_1.mp4 272.26M└──‌30 shard controller 的状态机处理_2.mp4 993.64M└──kv资料├──doc└──kv_doc.zip 5.93M└──repo├──raft-course-example.zip 98.46kb├──raft-course-main.zip 34.35kb├──raft-course-raft.zip 42.80kb└──raft-course-stash.zip 91.61kb
课程购买
课程价格
金币29
290金币限时优惠会员免费
销量:0
💎 开通会员每日免费下载,比单买更划算 →
支付成功后会自动显示下载资源云盘的链接!点击链接即可下载到本地。