阅读:4441回复:2
Go web分布式存储(raft)实战开更(第1,2章更新帖)
本课程是为后面的实战课程做铺垫的。
我们使用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 |
|
|
板凳#
发布于:2020-07-25 01:32
2020.7.25开始录制第二章,构建本地KV系统。
|
|
|