PD节点的etcd数据是存储在文件中吗?通过raft保证个节点的强一致性

ETCD 存储的机制

  1. etcd是CoreOS基于Raft开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选注、分布式锁等)
  2. etcd是一个go语言编写的分布式、高可用的一致性键值存储系统
  3. etcd基于Raft协议,通过日志复制的方式来保证数据的强一致性
  4. etcd默认数据一经更新就落盘持久化,数据持久化存储使用WAL(write ahead log,预写式日志)格式。WAL记录了数据变化的全过程,在etcd中所有数据在提交之前都要先写入WAL中;etcd的snapshot(快照)文件存储了某一时刻etcd的所有数据,默认设置为每10000条记录做一次快照,经过快照后WAL文件即可删除
  5. etcd具有一定的容错能力,假设集群有n个节点,即便集群中(n-1)/2个节点发生了故障,只要剩下的(n+1)/2个节点达成一致,也能操作成功。因此,他能有效的应对网络分区和机器故障带来的数据丢失风险

在分布式系统中,如何管理节间的状态一直是个难题,etcd像是专门为集群环境的服务发现和注册而设计,他提供了数据TTL失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪管理集群节点的状态