美文网首页
etcd 简单介绍

etcd 简单介绍

作者: wayyyy | 来源:发表于2023-01-13 19:55 被阅读0次

etcd 目标是构建一个高可用的分布式键值数据库,具有以下特点:

  • 简单
    安装,使用和配置都比较简单
  • 键值对存储
    将数据存储在分层组织的目录中
  • 监测变更
    监测特定的键或目录以进行更改
  • 安全
    支持SSL证书验证
  • 快速
    根据官方提供的 Benchmark 数据,单实例支持两千次以上的读操作
  • 可靠
    采用raft算法,实现分布式系统数据的可用性和一致性
etcd v3

etcd 是一个分布式且可靠的KV存储数据库,用于将关键数据存储在分布式系统中,etcd v2 和 etcd v3 在底层使用同一套Raft算法的两个独立应用,相互之间接口和存储不一样,且数据相互隔离。如果从 etcd v2 升级到 v3,那么原来的数据还是只能用的v2的接口访问。

image.png

etcd 集群一般由奇数个节点组成,多个节点通过raft算法相互协作,raft 算法会选择一个主节点作为leader,负责数据同步和分发。当leader发生故障时,系统会自动选择另一个节点作为Leader,以再次完成系统数据同步。

etcd 使用场景
  • 键值对存储
    etcd 是一个键值存储的组件,存储是etcd的最基本的功能,etcd 基于raft算法能够有力保证各个场景中键值的一致性。其他应用场景也是建立在etcd的可靠存储上。

  • 服务注册与发现
    分布式环境中,业务多实例部署,涉及服务之间的调用,服务注册与发现就是解决如何找到分布式集群中的某一个服务,并与之建立联系。


    image.png

    服务提供者启动时,在服务注册中心进行注册自己的服务名,主机地址,端口等信息;服务请求者需要调用对应的服务时,一般通过服务名请求服务注册中心地址,服务注册中心返回对应的实例地址和端口。

  • 配置管理与发布
    应用中的一些配置信息放到etcd上进行节点管理,应用在启动时主动从 etcd 获取一次配置信息,同时在etcd节点上注册一个 Watcher 进行等待,以后每次配置有更新时,etcd 都会实时通知订阅者,以此达到获取最新配置的目的。

  • 分布式锁

代码模块介绍
包名 用途
auth 访问权限
client Go 客户端SDK
contrib raft example 实现
embed 主要是etcd的 config
etcdmain 入口程序
etcdctl 命令行客户端
etcdserver server 主要的包
functional/hack CMD,DockerFile 之类的杂项
integration 和etcd集群相关
lease 租约相关
mvcc etcd 的底层存储,包含Watch实现
pkg etcd 使用的工具集合
proxy etcd 使用的工具集合
raft raft 算法模块
wal 日志模块

使用分层的方式来描述etcd架构,如图所示:

image.png
  • 客户端层
    包括clientv3 和 etcdcltl 等客户端,用户通过命令行或者客户端调用提供了RESTful 风格的API,降低了etcd使用复杂度。

  • API网关接口层
    API 接口层提供了客户端访问服务端通信协议和接口定义,以及服务端节点之间相互通信的协议,etcd有V3和V2两个版本

  • etcd raft 层
    负责Leader 选举和日志复制等功能,除了与本节点的 etcd Server 通信外,还与集群中的其他etcd节点进行交互,实现分布式一致性数据同步的关键工作。

  • 逻辑层
    etcd 业务逻辑层,包括鉴权,租约,KVServer,MVCC 和 Compactor 压缩等核心功能。

  • etcd 存储
    实现了快照,预写式日志WAL。

相关文章

  • etcd 简单介绍

    etcd 目标是构建一个高可用的分布式键值数据库,具有以下特点: 简单安装,使用和配置都比较简单 键值对存储将数据...

  • golang grpc之etcd服务注册发现

    什么是etcd?什么是grpc?为什么要使用etcd。本文将简单对etcd与grpc介绍与代码实现。 etcd e...

  • 解析高可用分布式键值存储 etcd 的原理

    这篇文章将会介绍 etcd 的实现原理,其中包括 Raft 协议、存储两大模块,在最后我们也会简单介绍 etcd ...

  • ETCD 的理解和简单使用(一)

    ETCD 的理解和简单使用 1. etcd介绍 etcd是使用Go语言开发的一个开源、高可用的分布式key-val...

  • Etcd

    Etcd按照官方介绍Etcd is a distributed, consistent key-valuestor...

  • etcd介绍

    from http://www.infoq.com/cn/articles/etcd-interpretation...

  • Etcd介绍

    协调服务满足目标 可用性角度:高可用数据一致性角度:提供获取最新数据的机制容器角度:低容量、仅存储关键元数据配置。...

  • 手动构筑单机版K8s(五)创建单节点etcd

    5.创建单节点etcd kuberntes 系统使用 etcd 存储所有数据,本文介绍单节点etcd部署方式 TL...

  • etcd集群安装和单机安装

    etcd集群安装和单机安装 etcd介绍 etcd 是基于 Raft 的分布式 key-value 存储系统,由 ...

  • Ansible Role 键值存储 之【etcd】

    Ansible Role: etcd 安装etcd 介绍 etcd是一个高可用的键值存储系统,主要用于共享配置和服...

网友评论

      本文标题:etcd 简单介绍

      本文链接:https://www.haomeiwen.com/subject/dfiucdtx.html