Raft
- 关于EventHub
> 一些比较ran的项目流程问题 浏览器 │ │ HTTP ↓ ┌─────────────┐ │ Nginx │ │ 80 / 8090 │ └──────┬──────┘ │ ┌──────────────┼──────────────┐ ↓ ↓ ↓ user-api event-api order-api ×3 :8888 :8890 :8894/:8895/:8896 │ │ │ │ │ │ └──────────────┼──────────────┘ │ gRPC RPC │ …
- 关于HMETCD——类etcd的kv存储项目
> 一些比较ran的项目流程问题 介绍一下HMETCD项目 -项目目标 -整体架构 -选型(mvcc+badgerdb+raft) -实现功能 HMETCD 是一个用 Go 语言实现的基于 Raft 的多节点分布式KV存储,整体实现参考ETCD。客户端通过 grpc 请求节点,写请求进入 Leader 后通过 Raft 复制和提交,再由 ApplyLoop 进入状态机,最后由 MVCC 管理版本落实到 BadgerDB。Raft 解决多节点下数据一致性,MVCC 做多版本管理,BadgerDB 负责 …
- 关于HMETCD持久化
> 一些比较ran的项目流程问题 关于我的KV存储项目的持久化 总览 存储 管什么 文件 写入时机 WAL 要执行什么命令 + raft 元信息 wal.log(append-only) 命令提交时、投票/收快照时 Snapshot 某时间点的状态机全量快照 snapshot-<index>-<term>.dat 日志超阈值时(leader) BadgerDB 状态机的数据本体(mvcc 版本 + 查重表) badger 目录 apply 时 write-through …