1、etcd介绍
etcd是Google公司使用Go语言开发的开源、高可用的分布式key-value存储系统,可以用于配置共享和服务的注册和发现。
类似项目有zookeeper以及consul
etcd具有以下特点:
- 完全复制:集群中的每个节点都可以使用完整的存档
- 高可用性:Etcd可用于避免硬件的单点故障或网络问题
- 一致性:每次读取都会返回跨多主机的最新写入
- 简单:包括一个定义良好、面向用户的API(gRPC)
- 快速:每秒10000次写入的基准速度
- 可靠:使用Raft算法实现强一致性、高可用服务存储目录
2、etcd使用场景
2.1、配置中心
将一些配置信息放到etcd上进行集中管理。
这类场景方式通常是这样的:应用在启动到时候主动从etcd获取一次配置信息,同时在etcd节点上注册一个Watcher并等待,以后每次配置有更新的时候,etcd都会实时通知订阅者,以此达到获取最新配置信息的目的。
2.2、分布式锁
因为etcd使用Raft算法保持了数据的强一致性,其次操作存储到集群中的值必然是全局一致的,所以很容易实现分布式锁,锁服务有两种使用方式,一时保持独占,二是控制时序。