ETCD教程-1.ETCD介绍

简介: etcd是一个Go言编写的分布式、高可用的一致性键值存储系统,用于提供可靠的分布式键值存储、配置共享和服务发现等功能

1.1 什么是ETCD?


etcd是一个Go言编写的分布式、高可用的一致性键值存储系统,用于提供可靠的分布式键值存储、配置共享和服务发现等功能,具有以下特点:

  • 简单:
  • 易使用:基于HTTP+JSON的API让你用curl就可以轻松使用;
  • 易部署:使用Go语言编写,跨平台,部署和维护简单。
  • 可靠:
  • 强一致:使用Raft算法充分保证了分布式系统数据的强一致性;
  • 高可用:具有容错能力,假设集群有n个节点,当有(n-1)/2节点发送故障,依然能提供服务;
  • 持久化:数据更新后,会通过WAL格式数据持久化到磁盘,支持Snapshot快照。
  • 快速:每个实例每秒支持一千次写操作,极限写性能可达10K QPS。
  • 安全:可选SSL客户认证机制。


1.2 整体框架


从etcd的架构图中我们可以看到,etcd主要分为四个部分:

  • HTTP Server:用于处理用户发送的API请求以及其它etcd节点的同步与心跳信息请求。
  • Store:用于处理etcd支持的各类功能的事务,包括数据索引、节点状态变更、监控与反馈、事件处理与执行等等,是etcd对用户提供的大多数API功能的具体实现。
  • Raft:Raft强一致性算法的具体实现,是etcd的核心。
  • WAL:Write Ahead Log(预写式日志),是etcd的数据存储方式。除了在内存中存有所有数据的状态以及节点的索引以外,etcd就通过WAL进行持久化存储。WAL中,所有的数据提交前都会事先记录日志。Snapshot是为了防止数据过多而进行的状态快照;Entry表示存储的具体日志内容。

X6Z0ZX9FI`)WYR)C{P(5_@8.png

相关文章
|
存储 JSON Kubernetes
查看k8s的etcd数据
查看k8s的etcd数据
1597 0
查看k8s的etcd数据
|
存储 JSON NoSQL
ETCD教程-4.深入ETCD
目前etcd主要经历了3个大的版本,分别为etcd 0.4版本、etcd 2.0版本和etcd 3.0版本。
784 0
ETCD教程-4.深入ETCD
|
运维
ETCD系列之一:简介
本文介绍etcd使用场景,工作原理。
76325 2
|
1月前
|
存储 负载均衡 算法
1. Etcd 介绍
1. Etcd 介绍
|
8月前
|
存储 Kubernetes 算法
【K8S系列】深入解析etcd
【K8S系列】深入解析etcd
189 0
|
9月前
|
JSON API Go
etcd的安装和使用
etcd的安装和使用
134 0
|
1月前
|
存储 消息中间件 算法
ETCD(一)简介
ETCD(一)简介
57 0
|
1月前
|
算法 Java Go
ETCD(六)ETCD和Zookeeper
ETCD(六)ETCD和Zookeeper
57 0
|
8月前
|
存储 Unix Linux
etcd集群搭建
etcd集群搭建
218 0
|
存储 算法 安全
Etcd 初步认识
近期在接触的新项目中在使用Etcd,但是在使用的过程中公司对其的使用仅使用服务注册的功能,并未将其发挥真正的用处。学习一波,将来可以在项目中使用进行改进。
235 0