《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》—2.2.2etcd架构
【摘要】 本书摘自《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》一文中的第2章,第2.2.2节,作者是华为云容器服务团队、杜军等编著。
2.2.2 etcd架构
1.网络层与Raft模块之间的交互
在etcd中,Raft协议被抽象为Raft模块。按照Raft协议,节点之间需要交互数据。etcd通过Raft模块中抽象的RaftNode拥有一个消息盒子,RaftNode将各种类型的消息都放入消息盒子中,由专门的go routine将消息盒子里的消息写入管道(Go语言的Channel),而管道的另外一端就链接在网络层的不同类型的传输通道上,同样,也有专门的go routine在等待(select)消息的到达。
而网络层收到的消息,也是通过管道传给RaftNode的。RaftNode中有专门的go routine在等待消息。也就是说,网络层与Raft模块之间通过Go语言的Channel来完成数据通信。
2. etcd server与客户端的交互
etcd server在启动之初,会监听服务端口,待服务端口收到客户端的请求之后,就会解析出消息体,然后通过管道传给Raft模块,当Raft模块按照Raft协议完成操作时,会回复该请求(或者请求超时关闭了)。客户端与所有的etcd server都是通过客户端的端口使用HTTP进行通信的。etcd server的客户端端口主要用来提供对外服务。
3. etcd server之间的交互
etcd server之间通过peer端口使用HTTP进行通信。etcd server的peer端口主要用来协调Raft的相关消息,包括各种提议的协商。
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)