Etcd学习记录

简介

  etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现。etcd是由CoreOS开发并维护的,灵感来自于 ZooKeeper 和 Doozer,

它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的

日志复制,Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader。

Google的容器集群管理系统Kubernetes、开源PaaS平台Cloud Foundry和CoreOS的Fleet都广泛使用了etcd。

 

概念

Raft:etcd 所采用的保证分布式系统强一致性的算法。

Node:一个 Raft 状态机实例。

Member: 一个 etcd 实例。它管理着一个 Node,并且可以为客户端请求提供服务。

Cluster:由多个 Member 构成可以协同工作的 etcd 集群。

Peer:对同一个 etcd 集群中另外一个 Member 的称呼。

Client: 向 etcd 集群发送 HTTP 请求的客户端。

WAL:预写式日志,etcd 用于持久化存储的日志格式。

snapshot:etcd 防止 WAL 文件过多而设置的快照,存储 etcd 数据状态。

Proxy:etcd 的一种模式,为 etcd 集群提供反向代理服务。

Leader:Raft 算法中通过竞选而产生的处理所有数据提交的节点。

Follower:竞选失败的节点作为 Raft 中的从属节点,为算法提供强一致性保证。

Candidate:当 Follower 超过一定时间接收不到 Leader 的心跳时转变为 Candidate 开始竞选。

Term:某个节点成为 Leader 到下一次竞选时间,称为一个 Term。

Index:数据项编号。Raft 中通过 Term 和 Index 来定位数据。

 

API

put:

get:

del:

 

 

参考资料:

etcd:用于服务发现的键值存储系统

etcd:从应用场景到实现原理的全方位解读

etcd v3命令和API

etcd rest api基本操作

etcd4j

Etcd学习(一)安装和.NET客户端测试

Etcd学习(二)集群搭建Clustering

windows系统下etcd的安装与使用

Windows下安装Etcd集群及etcd-viewer

Mac安装Etcd,配置Etcd可视化页面Etcd Browser

etcd3集群部署

posted @ 2017-07-03 17:16  风过无痕521  阅读(210)  评论(0编辑  收藏  举报