rafthttp专题

etcd网络通讯层(一)——rafthttp中重要的接口

前面我们提到etcd-raft模块,etcd-raft模块并未提供网络层的相关实现,而是将待发送的消息封装进Ready实例返回给上层模块,然后由上层模块决定如何将这些消息发送到集群中的其他节点。etcd将网络层的相关实现单独封装成一个模块,也就是etcd-rafthttp模块。从而降低了etcd-raft和etcd-rafthttp之间的耦合,提高程序的可扩展性。       et

etcd系列-----raft网络层实现之rafthttp模块

raftexample示例中, raftNode.serveRaft()方法中有一段使用的HTTP库的代码,实现如下: func (rc *raftNode) serveRaft() {url, err := url.Parse(rc.peers[rc.id-1])if err != nil {log.Fatalf("raftexample: Failed parsing URL (%v)",