美文网首页
ETCD原理和基本实现

ETCD原理和基本实现

作者: 王司技术谈 | 来源:发表于2020-04-07 15:31 被阅读0次

    什么是 ETCD

    官方定义为:Distributed reliable key-value store for the most critical data of a distributed system
    简单直直译对就是:分布式系统中最关键的数据进行可靠的键值存储

    ETCD 名字含义

    /etc 是linux 操作系统的配置存储目录, d durtubute 分布式缩写,简单理解为分布式配置数据库。

    ETCD 特性和应用场景

    ETCD主要为了存储系统关键配置数据,配置数据很少修改,符合读多写少特性,根据此特性采用MVCC(MVCC Multi-Version Concurrency Control)进行读写冲突控制(锁机制)来提高读写效率。

    ETCD利用btree实现数据索引,提高数据读取效率。

    ETCD带有版本号,可以访问旧版本的数据,

    ETCD本身提供了事务机制(类比思考:关系型数据库事务)

    ETCD主要为了解决了分布式场景中最为常见的一致性问题,采用
    raft一致性算法机制来实现。

    ETCD提供了数据和服务的高可用,也是利用了raft一致性算法,同步多台服务器数据,部分节点挂掉不影响服务提供。

    ETCD通过watch机制,实现配置文件自动更新检测,可以实现服务的动态配置。

    ETCD 底层实现概述

    底层数据存储采用BoltDB 一个简单的支持事务的golang写的kv数据库,
    基于分布式协议 Raft来实现选主(Leader Election)、复制日志(Log Replication), 实现数据高可用(多服务器备份)和服务高可用(允许部分节点挂掉)。

    理解ETCD原理核心是理解raft算法,ETCD实现了一个基于raft扩展算法的库,是一个很经典的实现。raft算法是Paxos算法的简化实现,方便进行工程化,目前在分布式系统中应用较为广泛。 TiDB开始也使用ETCD,后来移植ETCD raft 算法库,实现了自己的raft一致性算法功能。raft算法本身较为复杂感兴趣的朋友 可以自己看相关的文章,然后可以细研究下ETCD raft 算法库,相信会对分布式系统认识会有大的提升。

    相关文章

      网友评论

          本文标题:ETCD原理和基本实现

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