shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数843
阅读:3578回复:2

Go web分布式存储(raft)实战开更(第1,2章更新帖)

楼主#
更多 发布于:2020-07-01 13:50
   本课程是为后面的实战课程做铺垫的。
    我们使用gin写个API,然后同时启动多个。此时当客户端向其中一个API提交数据,其他API依然能同步数据。这里面使用到了raft一致性协议。本课程后面会做成脚手架,本篇仅仅是教学和套路。
    使用场景
    1、秒杀。有了这个功能,我们做秒杀的库存同步 就无须借助其他组件。API启动即可完成库存多节点同步
    2、服务发现。不需要借助服务发现工具,API启动即可自动发现
    3、自己实现分布式缓存


    本课程的内容,后期会进行改进和封装变成脚手架项目。什么是脚手架? 看这里的一个课程:goft-gin脚手架
    本周先更新3课时 ,本课程是短课程,20课时左右,中高级课程,不适合初级以及以下的同学观看。

  

图片:raft.png


    

第1讲:开张课、创建基本的节点配置 免费试听,无需登录
  开门见山,直接撸起来。先对我们的基本架构做讲解,以及节点配置代码部分

第2讲:多节点运行、完成选举过程
今天我们弄3个节点运行,首先完成选举leader的过程

第3讲:设计简单缓存接口、多节点数据复制
今天我们初步完成多节点数据复制。还有很多细节,我们后面几课时逐一击破

第4讲:强制使用leader来提供服务的技巧
一旦选举完成后,则必须主节点来提供服务。这就太麻烦了,今天我们加个技巧使得任意节点都可以提供服务

第5讲:数据持久化:保存缓存快照
前面我们禁用了快照。今天这课时我们来保存快照,作为数据恢复使用

第6讲:数据持久化:快照恢复 免费试听,无需登录
今天代码非常简单,机制也很简单。当然带来的问题性能肯定不高。


第二章:构建本地KV系统

第7讲:KV存储第三方库使用
  第二章是构建本地KV的基本学习。先从基本的第三方库开始,后面再整合分布式同步

第8讲:缓存封装(1):Set和Get
 模仿Redis先做个Set和Get的封装

第9讲:缓存封装(2): 过期时间、获取所有key
 讲下过期时间的处理

第10讲:本地KV和Redis进行的基准测试 免费试听,无需登录
 演示下本地KV和Redis之间做个简单的基准测试

第11讲:带前缀的key检索
  像etcd一样,key是支持带前缀检索的。如/user/admin
会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数843
沙发#
发布于:2020-07-14 12:17
7.13更新 4-6讲。主要完成的是快照处理
会讲故事的程序员
shenyi
管理员
管理员
  • UID1
  • 粉丝45
  • 关注0
  • 发帖数843
板凳#
发布于:2020-07-25 01:32
2020.7.25开始录制第二章,构建本地KV系统。
会讲故事的程序员
游客

返回顶部