《云计算技术系列丛书 云原生分布式存储基石: etcd深入解析》—2.2.2etcd架构

举报
华章计算机 发表于 2019/06/03 12:57:51 2019/06/03
【摘要】 本书摘自《云计算技术系列丛书 云原生分布式存储基石: 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。