一.定义
ETCD是一个键值(key-value)存储仓库,相当于分布式存储数据库,用于共享配置和服务发现。
二.主要特点
1.简单:基于HTTP+JSON的API让你用curl就可以轻松使用。
2.安全:可选SSL客户认证机制。
3.快速:每个实例每秒支持一千次写操作。
4.可信:使用Raft算法充分实现了分布式。
默认使用的场景:
分布式系统中的数据分为控制数据和应用数据。使用etcd的场景默认处理的数据都是控制数据,对于应用数据,只推荐数据量很小,但是更新访问频繁的情况。
三.在部分场景的实际运用
1.服务发现
本质上来说,服务发现就是想要了解集群中是否有进程在监听udp或tcp端口,并且通过名字就可以查找和连接。要解决服务发现的问题,需要有下面三大支柱,缺一不可。
(1)一个强一致性、高可用的服务存储目录。基于Raft算法的etcd天生就是这样一个强一致性高可用的服务存储目录。
(2)一种注册服务和监控服务健康状态的机制。用户可以在etcd中注册服务,并且对注册的服务设置key TTL,定时保持服务的心跳以达到监控健康状态的效果。
(3)一种查找和连接服务的机制。通过在etcd指定的主题下注册的服务也能在对应的主题下查找到。为了确保连接,我们可以在每个服务机器上都部署一个Proxy模式的etcd,这样就可以确保能访问etcd集群的服务都能互相连接。
2.消息发布与订阅
在分布式系统中,最适用的一种组件间通信方式