文件名称:raft:分布式 raft 共识算法 go 实现
文件大小:21KB
文件格式:ZIP
更新时间:2024-05-01 08:53:27
Go
go-raft 分布式 raft 共识算法 go 实现 一、需要实现的接口 Fsm 客户端状态机接口,在 raft 内部调用此接口来实现状态机的相关操作,比如应用日志,生成快照,安装快照等。 Transport 在 raft 内部调用此接口的各个方法用于网络通信,比如发送心跳,日志复制,领导者选举,发送快照等。 RaftStatePersister 在 raft 内部调用此接口来持久化和加载内部状态数据,包括 term,votedFor及日志条目。 SnapshotPersister 在 raft 内部调用此接口来持久化和加载快照数据。 Logger 在 raft 内部调用此接口来打印日志。 二、使用 新建一个 raft.Node 对象,代表当前节点 使用 raft.Node.Run() 方法开启 raft 循环 开放 HTTP/RPC 接口,调用 raft.Node 的相应方法来接收来自
【文件预览】:
raft-main
----go.mod(44B)
----transport.go(1KB)
----logger.go(133B)
----message.go(4KB)
----persist.go(2KB)
----raft.go(59KB)
----README.md(1KB)
----state.go(14KB)
----.gitignore(23B)
----node.go(3KB)