etcd安装和使用

etcd是一款由CoreOS开发的高可用键值存储系统,主要应用于共享配置和服务发现。其设计灵感源自ZooKeeper和Doozer,使用Go语言编写,并采用Raft一致性算法确保数据的强一致性。本文介绍etcd的特性、安装编译过程及基本操作,包括键值读写、监听变化和租约管理等。
摘要由CSDN通过智能技术生成

etcd是一个高可用的键值存储系统,主要用于共享配置和服务发现etcd是由CoreOS开发并维护的,灵感来自于ZooKeeperDoozer,它使用Go语言编写,并通过Raft一致性算法处理日志复制以保证强一致性。Raft是一个来自Stanford的新的一致性算法,适用于分布式系统的日志复制,Raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader

分布式系统中的数据分为控制数据和应用数据。
使用etcd的场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。

1.etcd的特性如下:
  • 简单: curl可访问的用户的API(HTTP+JSON)
  • 安全: 可选的SSL客户端证书认证
  • 快速: 单实例每秒 1000 次写操作
  • 可靠: 使用Raft保证一致性

2.源码编译

# go is required
$ go version
go version go1.6.2 linux/amd64
# GOPATH should be set correctly
$ echo $GOPATH
/home/chenjianhua/gocode:/home/chenjianhua/myGolang
$ cd /home/chenjianhua/myGolang/src
$ git clone git@github.com:coreos/etcd.git
$ cd etcd
$ ./build
3.运行服务和简单Key Value操作
$ ./bin/etcd

#etcdctl
#etcdctl最新版本是v3.设置环境变量ETCDCTL_API=3
$export ETCDCTL_API=3
$etcdctl version
etcdctl version: 3.2.18
API vetsion: 3.2

# Set a key
$ ./bin/etcdctl put msg "hello"
$ OK
# Get a key
$ ./bin/etcdctl get msg
$ msg
$ hello
# Delete a key
$ ./bin/etcdctl del msg
# 1

4.watch监听

watchetcdctl阻塞,当另一个终端监听的值改变时,watch触发

$ etcdctl watch event1
# PUT
# event1
# hello

5.lease租约

etcd也能为key设置超时时间,但与redis不同,需要先创建lease,然后使用put命令加上参数`–lease=来设置

# 创建lease
$ etcdctl lease grant 1000
$ lease 694d6280d047720f granted with TTL(1000s)

# 设置key value 存活时间
$ etcdctl put name "fang" --lease=694d6280d047720f
$ OK

# 查询lease剩余时间
$ etcdctl lease timetolive 694d6280d047720f
$ lease 694d6275d93d3e0c granted with TTL(100s), remaining(968s)

# 查询lease剩余时间和关联的keys
$ etcdctl lease timetolive  694d6280d047720f --keys
$ lease 694d6280d047720f granted with TTL(1000s), remaining(755s), attached keys([name])

# 刷新lease存活时间
$ etcdctl lease keep-alive 694d6280d047720f
$ lease 694d6280d047720f keepalived with TTL(1000)

# 删除lease,并删除所有关联的key 
$ etcdctl lease revoke 694d6280d047720f
$ lease 694d6280d047720f revoked

参考:etcd:从应用场景到实现原理的全方位解读
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值