一、ETCD简介
etcd是一个Go言编写的分布式、高可用的一致性键值存储系统,用于提供可靠的分布式键值存储、配置共享和服务发现等功能,具有以下特点:
-
简单:
-
易使用:基于HTTP+JSON的API让你用curl就可以轻松使用;
-
易部署:使用Go语言编写,跨平台,部署和维护简单。
-
-
可靠:
-
强一致:使用Raft算法充分保证了分布式系统数据的强一致性;
-
高可用:具有容错能力,假设集群有n个节点,当有(n-1)/2节点发送故障,依然能提供服务;
-
持久化:数据更新后,会通过WAL格式数据持久化到磁盘,支持Snapshot快照。
-
-
快速:每个实例每秒支持一千次写操作,极限写性能可达10K QPS。
-
安全:可选SSL客户认证机制。
二、ETCD框架
从etcd的架构图中我们可以看到,etcd主要分为四个部分: