作者:王雷
etcd是什么
etcd是云原生架构中重要的基础组件,由CNCF孵化托管。ETCD是用于共享配置和服务发现的分布式,一致性的KV存储系统,是CoreOS公司发起的一个开源项目,授权协议为Apache。etcd 基于Go语言实现,主要用于共享配置,服务发现,集群监控,leader选举,分布式锁等场景。在微服务和 Kubernates 集群中不仅可以作为服务注册发现,还可以作为 key-value 存储的中间件。
提到键值存储系统,在大数据领域应用最多的当属ZOOKEEPER,而ETCD可以算得上是后起之秀了。在项目实现,一致性协议易理解性,运维,安全等多个维度上,ETCD相比Zookeeper都占据优势。
ETCD vs ZK
| ETCD | ZK |
一致性协议 | Raft协议 | ZAB(类Paxos协议) |
运维方面 | 方便运维 | 难以运维 |
项目活跃度 | 活跃 | 没有etcd活跃 |
API | ETCD提供HTTP+JSON, gRPC接口,跨平台跨语言 | ZK需要使用其客户端 |
访问安全方面 | ETCD支持HTTPS访问 | ZK在这方面不支持 |