ETCD 源码学习--节点数据传输 Transport 简述

在 ETCD 源码学习过程,不会讲解太多的源码知识,只讲解相关的实现机制,需要关注源码细节的朋友可以自行根据文章中的提示,找到相关源码进行学习。

Transport 主要实现节点之间的数据传输。

主要文件

/pkg/transport/transport.go  覆写了 net 中 RoundTrip  函数,其他 /pkg/transport/ 下的文件主要作用是实现一些网络连接的参数设置,比如读写超时、连接超时、长连接等。

/etcdserver/api/rafthttp/transport.go  定义了一些数据传输的接口,比如节点添加、发送消息等。

/etcdserver/api/rafthttp/peer.go   伙伴节点数据传输逻辑实现。

/etcdserver/api/rafthttp/remote.go 远程节点数据传输逻辑实现。

/etcdserver/api/rafthttp/stream.go  长连接传输实现(传输数据量比较小的数据,比如 MsgApp)。

/etcdserver/api/rafthttp/pipeline.go 短连接传输实现(传输数据量比较大的数据,比如MsgSnap)。

/etcdserver/api/rafthttp/msgappv2_codec.go or msg_codec.go  消息 encoder/decode 实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值