etcd初见

ETCD

ETCD 是用于共享配置和服务发现的分布式,一致性的K/V存储系统。

ETCD 特性

  • 采用一致性算法RAFT
  • API提供 HTTP+JSON ,GRPC

ETCD 工作原理

ETCD使用Raft协议来维护集群内各个节点状态的一致性。

  • 角色 集群中每个节点,任意时刻处于Leader,Follower,Candidate3种角色之一。
  • 日志复制 是指主节点将每次操作形成日志条目,并持久化到本地磁盘,然后通过网络IO发送给其他节点。
  • 安全行 在选主逻辑中,对能够成为主的节点加以限制,确保选出的节点已定包含了集群已经提交的所有日志。如果新选出的主节点已经包含了集群所有提交的日志,那就不需要从和其他节点比对数据了。简化了流程,缩短了集群恢复服务的时间。

规范词汇

  • node raft 状态机实例。每个node 都具有唯一的标识,并在处于 leader 状态时记录其他节点的步进数。
  • member 一个etcd 实例。
  • ClusterCluster 由多个 member 组成。每个 member 中的 node 遵循 raft 共识协议来复制日志。Cluster 接收来自 member 的提案消息,将其提交并存储于本地磁盘。
  • Peer 同一 Cluster 中的其它 member。
  • Client Client 指调用 Cluster API 的对象。

V2与V3的区别

  • 事务:ETCD V3提供了多键条件事务(multi-key conditional transactions),应用各种需要使用事务代替原来的Compare-And-Swap操作。
  • 平键空间(Flat key space):ETCD V3不再使用目录结构,只保留键。例如:”/a/b/c/“是一个键,而不是目录。V3中提供了前缀查询,来获取符合前缀条件的所有键值,这变向实现了V2中查询一个目录下所有子目录和节点的功能。
  • 简洁的响应:像DELETE这类操作成功后将不再返回操作前的值。如果希望获得删除前的值,可以使用事务,来实现一个原子操作,先获取键值,然后再删除。
  • 租约:租约代替了V2中的TTL实现,TTL绑定到一个租约上,键再附加到这个租约上。当TTL过期时,租约将被销毁,同时附加到这个租约上的键也被删除。

安装和使用

单节点使用

在github上下载,etcd

下载后解压文件,运行命令如下:

./etcd -name ll   -listen-client-urls http://192.168.1.94:2379,http://127.0.0.1:2379   -advertise-client-urls http://192.168.1.94:2379
curl http://192.168.1.94:2379/v2/keys

若使用V3 版本 则需要设置 环境变量后用etcdctl

export ETCDCTL_API=3
./etcdctl put test 1
OK
./etcdctl get test
test
1

转载于:https://my.oschina.net/johnhjwsosd/blog/1801471

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值