服务发现
文章平均质量分 73
FAS_2019
这个作者很懒,什么都没留下…
展开
-
etcd 2.3.7启动流程分析
etcd总共有两种模式。一种是proxy,一种是作为kvstore,这里主要记录了etcd作为kvstore的启动流程,etcd的启动入口在etcd.go/startEtcd,本章先粗略的描述下启动流程的重要环节,后面在详细描述没有重要环节里面的键步骤。 首先为各个peer建立net.Listener,用于后续监听各个peer的连接。 // 存储peers net.Listener的数组 p...原创 2018-06-24 20:45:39 · 743 阅读 · 0 评论 -
etcd-raft leader选举 2.3.7
etcd-raft的周期性心跳信号产生定时器在扩展的raftNode(raft.node实现raft.Node接口)节点启动,由于raftNode节点一般为扩展etcd-raft算法的结合需求的可定制类,之所以把tick的产生信号放在raftNode主要是方便修改心跳超时时间时不用修改raft协议核心代码,可以见EtcdServer的raftNode: // etcd-2.3.7/etcdser...原创 2018-06-29 13:38:27 · 1149 阅读 · 0 评论 -
etcd-raft 2.3.7 raft peer间的交互通信流程
在写etcd-raft的leader选举的那篇文章时,每次牵扯到消息接收和发送都用”接收到消息”、“把消息发送”出去这样的字眼给代替了,感觉有那么一点的别扭,这节主要描述下etcd的消息发送流程。 在介绍信息交互流程之前先介绍几个比较关键的结构体类型以及里面关键嵌入成员: EtcdServer : type EtcdServer struct { // etcdserver中用于...原创 2018-06-29 20:17:41 · 1146 阅读 · 1 评论 -
etcd 2.3.7请求响应流程分析
以对etcd键值的操作请求为例介绍下etcd的请求的开始处理到响应的大体流程,etcd中处理的kv请求的handler为keysHandler,由于keysHandler最终作为http请求的处理函数,所以请求开始处理的入口为ServeHTTP: func (h *keysHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {...原创 2018-06-25 14:37:38 · 589 阅读 · 0 评论 -
etcd-raft 2.3.7 raft 日志复制 log replication 以及心跳Heartbeat
raft的日至复制和etcd-raft的leader选举 “`原创 2018-06-30 17:31:30 · 929 阅读 · 0 评论