goRaft:Raft协议Go版本的一种实现

时间:2024-06-02 04:19:02
【文件属性】:

文件名称:goRaft:Raft协议Go版本的一种实现

文件大小:34KB

文件格式:ZIP

更新时间:2024-06-02 04:19:02

golang raft Go

goRaft 简介 raft协议的go版本,实现功能包括: 选主投票 节点心跳 日志同步 成员变更 日志压缩 存在的问题或需要解决的问题: 完善snapshot快照同步逻辑 成员变更,每次只允许变动一个节点 非leader节点转发请求,考虑改用rpc方式 改善状态机。。。。。。 测试启动: 在主目录下,启动多个测试节点,比如(测试配置文件中定义了三个节点): $ go test -bexpect=2 -name=node1 -host=127.0.0.1:3333 -client=127.0.0.1:3334 [INFO] [{node1 127.0.0.1:3333 127.0.0.1:3334 1}] [INFO] &{LogPrefix:raft-log- Peers:map[node1:127.0.0.1:3333] Host:127.0.0.1:3333 Client:127.


【文件预览】:
goRaft-master
----client.go(2KB)
----proto()
--------vote_request.proto(349B)
--------svrbootstrap.proto(384B)
--------log_entry.proto(151B)
--------appendentry_request.pb.go(9KB)
--------appendentry_request.proto(623B)
--------log_entry.pb.go(2KB)
--------vote_request.pb.go(6KB)
--------svrbootstrap.pb.go(7KB)
----internlog()
--------README(71B)
----append_entries.go(4KB)
----request_vote.go(815B)
----command.go(2KB)
----log_entry.go(2KB)
----raft_test2.cfg(52B)
----peer.go(4KB)
----raft_test1.cfg(52B)
----define.go(337B)
----raft_test0.cfg(52B)
----.travis.yml(145B)
----util()
--------time.go(2KB)
--------logger()
--------network.go(365B)
--------common.go(1KB)
----LICENSE(1KB)
----dockerenv.md(1KB)
----README.md(4KB)
----snapshot.go(365B)
----server.go(16KB)
----const.go(1KB)
----server_state.go(1KB)
----log_manage.go(5KB)
----commands.go(2KB)
----statemachine.go(127B)
----params.go(1KB)
----raft_test3.cfg(52B)
----.gitignore(48B)
----raft_test.go(679B)
----config.go(521B)
----svrbootstrap.go(2KB)

网友评论