ETCD(一)简介

简介: ETCD(一)简介

1. ETCD是什么

etcd 是一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。和数据库一样都是用来存数据的,但是etcd有自己的特点,因此有自己的使用场景。

2. etcd 特点

  1. 完全复制,集群中的每个节点均拥有全量数据
  2. 强一致性,etcd通过raft共识算法保证集群数据的一致性
  3. 数据结构简单,仅字符串格式
  4. 可存储的数据量较少
  5. 主要是考虑强一致性,写入速度相对redis慢很多。

3. etcd的使用场景

  1. 服务注册与服务发现
  2. 分布式配置中心 (通过watch来监听一组key值的变化)
  3. 分布式锁
  4. 分布式选主
  5. 读多写少的场景

最重要的场景还是在分布式配置场景中,以及服务注册和服务发现。因为ETCD的强一致性的特点,我们在配置分布式集群时使用到的配置文件信息,例如IP、端口等信息可以放在etcd中,当有新的服务Server出现,或者集群有服务配置修改,我们其他节点都能马上收到信息去处理。

在分布式场景中还有zookeeper也使用的非常多,和etcd是一样的作用。zookeeper使用的场景,etcd都可以使用。zookeeper比较早,所以很多主流的分布式框架都用的zookeeper,比如kafka。而etcd算是后起之秀,未来可期。etcd相对于zookeeper性能更好。zookeeper是Java系的,而etcd是go语言的,也需要看应用场景来考虑使用哪个。

架构图

  1. Leader:Raft算法中通过竞选而产生的处理所有数据提交的节点
  2. Follower:竞选失败的节点作为Raft中的从属节点,为算法提供强一致性保证
  3. BoltDB:一个支持事务的KV存储引擎,用于对ETCD数据的持久化,支持并发读事务,串行写事务
  4. WAL 预写式日志:etcd中的数据提交都会先记录到日志,日志成功后才会做数据持久化
  5. Snapshot,快照:防止WAL日志过多,用于存储某一时刻etcd的所有数据,可用于节点故障恢复(比如每产生1w次提交,即写1w次日志,做一次快照)
  6. gRPC Server:节点与节点,节点与客户端通过gRPC 通信和信息同步,每个节点都是一个gRPC 服务器
  7. Raft:共识算法,etcd数据强一致性的保障
  8. Client:etcd客户端,可以是命令行客户端 etcdctl ,也可以是各个语言版本的client库,可通过grpc与http与server端通信
目录
相关文章
|
7月前
|
网络协议 应用服务中间件 网络安全
2026阿里云免费SSL证书申请流程|零基础一步到位,超简单
2026年阿里云免费SSL证书(Digicert品牌)申请指南:零基础一步到位!单账号每年可领20张,有效期3个月(非1年)。全程免费,在数字证书管理服务控制台操作——选“个人测试证书”→提交申请→DNS验证(TXT记录)→审核通过后下载PEM/PFX等多格式证书。到期不续费,重新申请即可。
2022 7
|
8月前
|
自然语言处理 监控 数据挖掘
2026 年数据分析Agent与ChatBI产品推荐指南:数据智能驱动业务新增长
2026年,数据分析迈向“主动洞察”时代。瓴羊Quick BI凭借“智能小Q”实现自然语言交互、自动归因分析与报告生成,支持秒级响应、多端协同及行业定制化落地,助力企业高效决策,成为数据驱动转型的标杆选择。
|
11月前
|
并行计算 程序员 API
Python版本进化史:从3.6到3.14,每个版本都带来了什么惊喜?
程序员晚枫,全网30万下载的python-office作者。亲历Python 3.6到3.14进化历程,详解各版本核心新特性:f-strings、数据类、海象运算符、模式匹配、性能飞跃至多解释器并发革命,助你掌握Python演进脉络,高效开发。
947 14
|
缓存 安全 算法
高性能无锁并发框架Disruptor,太强了!
高性能无锁并发框架Disruptor,太强了!
388 0
高性能无锁并发框架Disruptor,太强了!
|
存储 Kubernetes 监控
etcd:分布式键值存储系统技术
`etcd` 是一个用于共享配置和服务发现的高度可用键值存储系统,基于Raft算法保证数据一致性。它提供HTTP/GRPC API,常用于服务发现、配置共享和分布式锁。etcd集群包含多个节点,每个节点可为领导者或跟随者。在Kubernetes中,etcd存储集群状态,其稳定性和一致性至关重要。维护etcd涉及备份、状态监控、日志审计和安全措施。
953 2
|
Oracle 关系型数据库 MySQL
比较Oracle和MySQL的语法差异。
在使用Oracle和MySQL时,数据库设计、查询优化、以及日常管理的方式会因为这些差异而有不同的考虑和应用策略。因此,开发人员和数据库管理员必须了解各自数据库的特性和语法差异,以便更有效地利用数据库资源。适应这些语法和功能上的差异对于维护跨数据库平台应用至关重要。
574 0
|
存储 监控 算法
[etcd]简介与安装
[etcd]简介与安装
432 0
|
消息中间件 存储 运维
2024最全RabbitMQ集群方案汇总
本文梳理了RabbitMQ集群的几种方案,主要包括普通集群、镜像集群(高可用)、Quorum队列(仲裁队列)、Streams集群模式(高可用+负载均衡)和插件方式。重点介绍了每种方案的特点、优缺点及适用场景。搭建步骤包括安装Erlang和RabbitMQ、配置集群节点、修改hosts文件、配置Erlang Cookie、启动独立节点并创建集群,以及配置镜像队列以提高可用性和容错性。推荐使用Quorum队列与Streams模式,其中Quorum队列适合高可用集群,Streams模式则同时支持高可用和负载均衡。此外,还有Shovel和Federation插件可用于特定场景下的集群搭建。
3840 3
|
JSON API Go
etcd的安装和使用
etcd的安装和使用
598 0
|
存储 负载均衡 算法
1. Etcd 介绍
1. Etcd 介绍