ETCD 简介

ETCD 简介


1-etcd介绍

etcd 是 CoreOS 团队于 2013 年 6 月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。具有以下特点:

  • 简单:安装配置简单,而且提供了 HTTP API 进行交互,使用也很简单
  • 键值对存储:将数据存储在分层组织的目录中,如同在标准文件系统中
  • 监测变更:监测特定的键或目录以进行更改,并对值的更改做出反应
  • 安全:支持 SSL 证书验证
  • 快速:根据官方提供的 benchmark 数据,单实例支持每秒 2k+ 读操作
  • 可靠:采用 raft 算法,实现分布式系统数据的可用性和一致性

etcd 采用 Go 语言编写,它具有出色的跨平台支持,很小的二进制文件和强大的社区。 etcd 机器之间的通信通过 Raft 算法处理。

etcd 是一个高度一致的分布式键值存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它可以优雅地处理网络分区期间的 leader 选举,以应对机器的故障,即使是在 leader 节点发生故障时。

从简单的 Web 应用程序到 Kubernetes 集群,任何复杂的应用程序都可以从 etcd 中读取数据或将数据写入 etcd。

2- 使用场景

etcd 比较多的应用场景是用于服务注册与发现,除此之外,也可以用于键值对存储,应用程序可以读取和写入 etcd 中的数据。

一个简单的用例是将数据库连接详细信息或功能标志存储在 etcd 中作为键值对。 可以观察这些值,使我们的应用在更改时可以重新配置自己。高级用法是利用 etcd 的一致性保证来实施数据库 leader 选举或在一组 follower 之间执行分布式锁定。

2.1 键值对存储

A highly-available key value store for shared configuration and service discovery.
一个用于配置共享和服务发现的键值存储系统。

归根结底,etcd 是一个键值存储的组件,其他的应用都是基于其键值存储的功能展开。etcd 的存储有如下特点:

  • 采用kv型数据存储,一般情况下比关系型数据库快。

  • 支持动态存储(内存)以及静态存储(磁盘)。

  • 分布式存储,可集成为多节点集群。

  • 存储方式,采用类似目录结构。

    • 只有叶子节点才能真正存储数据,相当于文件。
    • 叶子节点的父节点一定是目录,目录不能存储数据。
  • 在这里插入图片描述

2.2Etcd 数据结构与特性

Etcd 在其数据模型和组织结构上更接近于 ZooKeeper和对象存储,而不是 Redis。它使用层次化的键值对来存储数据,支持类似于文件系统路径的层次结构,能够很灵活地单 key 查询、按前缀查询、按范围查询。

Etcd 的核心数据结构

1.Key(键):Etcd 中的基本数据单元,类似于文件系统中的文件名。每个键都唯一标识一个值,并且可以包含子键,形成类似于路径的层次结构。

2.Value(值):与键关联的数据,可以是任意类型的数据,通常是字符串形式。只有 key、value,是不是比 Redis 好理解多了?我们可以将数据序列化后写入 value。

Etcd 有很多核心特性,其中,应用较多的特性是:

1.Lease(租约):用于对键值对进行 TTL 超时设置,即设置键值对的过期时间。当租约过期时,相关的键值对将被自动删除。

2.Watch(监听):可以监视特定键的变化,当键的值发生变化时,会触发相应的通知。

有了这些特性,我们就能够实现注册中心的服务提供者节点过期和监听了。
此外,Etcd 的一大优势就是能够保证数据的强一致性。
Etcd 如何保证数据一致性?

从表层来看,Etcd 支持事务操作,能够保证数据一致性。
从底层来看,Etcd 使用 Raft 一致性算法来保证数据的一致性,
Raft 是一种分布式一致性算法,它确保了分布式系统中的所有节点在任何时间点都能达成一致的数据视图。

具体来说,Raft 算法通过选举机制选举出一个领导者(Leader)节点,领导者负责接收客户端的写请求,并将写操作复制到其他节点上。当客户端发送写请求时,领导者首先将写操作写入自己的日志中,并将写操作的日志条目分发给其他节点,其他节点收到日志后也将其写入自己的日志中。一旦大多数节点(即半数以上的节点)都将该日志条目成功写入到自己的日志中,该日志条目就被视为已提交,领导者会向客户端发送成功响应。在领导者发送成功响应后该写操作就被视为已提交,从而保证了数据的一致性。

如果领导者节点宕机或失去联系,Raf 算法会在其他节点中 选举出新的领导者,从而保证系统的可用性和一致性。新的领导者会继续接收客户端的写请求,并负责将写操作复制到其他节点上,从而保持数据的一致性。

上面这段不理解也没关系,我们可以使用官方提供的 Etcd Playground 来可视化操作 Etcd,便于学习。

可视化学习地址

Playground 地址:

进入上述链接,首先可以看到如下图所示:可以看到存在5个节点,然后主节点是node2

在这里插入图片描述

试图停掉上述node2这个主节点,会在一段时间后,发现变成了node3主节点

在这里插入图片描述

有意思的是:在node3为主节点时,停止主节点,node4先变为主节点后续,存活的两个节点都不是在主节点或者从节点,且在一小段时间内,读取值的时候,显示 error: 504 - Gateway Timeout,并且无信息输出。

在这里插入图片描述

查阅资料后了解到,edtc存在两个节点的时候,应该还是会分配主从节点,但是出现这个问题的原因,我们不得而知

具体操作

和所有数据存储中间件一样,基本操作无非就是:增删改查

可以用可视化界面模拟操作,比如 write 写数据(更新数据)
在这里插入图片描述

read 读取操作

在这里插入图片描述

前缀读取

在这里插入图片描述

delete 删除

在这里插入图片描述

删除后查询

在这里插入图片描述

关于租约,监听等 后续再给大家进行演示。


至此,我们简介了ETCD基本的使用方式,

码字不易,希望大家能够一键三连🌝⭐🌟


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/8253.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据丢失不慌张,手机数据恢复一键解决!

如今手机已经成为我们生活中不可或缺的一部分。无论是工作、学习还是娱乐,手机都扮演着重要的角色。随着使用时间的增加,手机数据丢失的问题也时常发生。那么手机数据恢复有哪些方法呢?面对这种情况,先不要慌张,本文将…

神经元(科普)

Ⅰ 神经元简介 神经元即神经元细胞,是神经系统最基本的结构和功能单位。 分为细胞体和突起两部分。 细胞体由细胞核、细胞膜、细胞质组成,具有联络和整合输入信息并传出信息的作用。 突起有树突和轴突两种。树突短而分枝多,直接由细胞体…

雪深监测站解析-云境天合

TH-XS2雪深监测站是一种用于监测雪深的设备,它们分布在全国各地的关键区域,如高速公路、铁路沿线、机场等重要交通节点,以及山区、林区等易发生雪灾的地区。这些监测站就像是气象工作者的“眼睛”,时刻关注着雪情的变化&#xff0…

计算机毕业设计Python+Vue.js天气预测系统 中国气象质量采集与可视化 天气数据分析 天气可视化 天气大数据 天气爬虫 大数据毕业设计

摘要 随着科技技术的不断发展,人民物质生活质量不断提高,我们越来越关注身边的气象、空气等地理环境。对于普通居民我们会选择合适的气象进行出游,提高精神层面的生活质量;对于企业会关注气象变换状况,来定制相关的生产…

【微机原理及接口技术】8086/8088系统时序和微机总线

【微机原理及接口技术】8086/8088系统时序和微机总线 文章目录 【微机原理及接口技术】8086/8088系统时序和微机总线前言一、8086/8088引脚信号和工作模式1.8088 的两种组态模式2.最小组态的引脚信号3.最小组态的总线形成4.最大组态的总线形成 二、8086/8088典型时序1.三种周期…

【编程题-错题集】非对称之美(找规律 / 贪心)

牛客对应题目链接:非对称之美 (nowcoder.com) 一、分析题目 找规律: 判断是否全都是相同字符。判断本身是否是回文。 如果这个字符串每个字符相同,不存在非回文子串,直接返回 0。如果这个字符串不是回文,输出字符串长度…

临时有事无法及时签字盖章?试试用契约锁设置“代理人”

遇到“领导休假中、在开重要会议、外出考察或者主任医生手术中等”一段时间内不方便或者无法及时签字盖章的情况怎么办?业务推进不了只能干等? 契约锁电子签及印控平台支持印章、签名“临时授权”、“代理签署”,实现指定人、指定时间段、指定…

Python专题:二、Python小游戏,体验Python的魅力

希望先通过一个小的游戏让大家先对Python感兴趣,兴趣是最好的老师。 小游戏的运行结果: 1、在sublime编辑器里面写如下代码: import randomnum random.randint(1, 100) # 获得一个随机数 is_done False # 是否猜中的标记 count 0 # 玩…

虹科Pico汽车示波器 | 免拆诊断案例 | 2010款凯迪拉克SRX车发动机无法起动

故障现象 一辆2010款凯迪拉克SRX车,搭载LF1发动机,累计行驶里程约为14.3万km。该车因正时链条断裂导致气门顶弯,大修发动机后试车,起动机运转有力,但发动机没有着机迹象;多起动几次,火花塞会变…

Python-VBA函数之旅-repr函数

目录 一、repr函数的常见应用场景 二、repr函数使用注意事项 三、如何用好repr函数? 1、repr函数: 1-1、Python: 1-2、VBA: 2、推荐阅读: 个人主页:https://blog.csdn.net/ygb_1024?spm1010.2135.…

阿里云VOD视频点播流程(1)

一、开通阿里云VOD 视频点播(ApsaraVideo VoD,简称VOD)是集视频采集、编辑、上传、媒体资源管理、自动化转码处理、视频审核分析、分发加速于一体的一站式音视频点播解决方案。登录阿里云,在产品找到视频点播VOD ,点击…

数据结构复习/学习9--堆/堆实现/升降序建堆/top-k问题

一、堆与完全二叉树 1.堆的逻辑与物理结构 2.父节点与子节点的下标 3.大小根堆 二、堆的实现(大根堆为例) 注意事项总结: 注意堆中插入与删除数据的位置和方法与维持大根堆有序时的数据上下调整 三、堆排序 1.排升序建大堆效率高 注意事项…

Redis快速学习

Redis快速学习 一、 Redis快速入门1.1 初始Redis1.1.1 Redis的存储方式1.1.2 NoSQL 与 sql 之间的区别 1.2 Redis概述1.2.1 Redis是什么1.2.2 Redis有什么用1.2.3 Redis的特性 1.3 Redis安装测试1.3.1 Redis Linux安装 1.4 Redis测试工具1.5 Redis的基本知识 二、Redis的五大数…

HFSS-day3-HFSS的工作界面

工作界面也称为用户界面,是HFSS软件使用者的工作环境:了解、熟悉这个工作环境是掌握HFSS软件使用的第一步 HFSS工作环境介绍 1.HFSS工作界面简单的组成说明2.工作界面中各个工作窗口功能主菜单工具栏项目管理窗口属性窗口信息管理窗口进程窗口三维模型窗口 3.HFSS主…

看完这个,你就懂了!IT审计到底是干什么的?如何做好IT审计?

01 大家应该都知道财务审计, 通俗讲,就是查账的。 看一下公司账上的数据是否准确, 每笔账是否都能合理溯源。 那IT审计到底是干什么的呢? 它和财务审计有什么关系吗? 这么跟你说吧, 现在很多公司都…

DInet

(1)数据: 1):随机获取5帧参考帧 2):处理这5帧连续帧,:source_frames:连续5帧的crop_moth b)audio_list:连续5帧的每一帧对应的5帧音频mel特征 c):refs:fintune 固定参考帧&#xff0…

1069 微博转发抽奖

solution #include<iostream> #include<string> #include<map> using namespace std; int main(){int n, m, s, loop 0, have 0;string id;map<string, int> mp;cin >> m >> n >> s;for(int i 1; i < m; i){//编号从1开始cin…

怎么扫描二维码看图片?在线制作图片二维码的方法

随着现在二维码的广泛使用&#xff0c;用这个方式来展现内容的情况越来越多&#xff0c;比如扫码看图就是一种很常见的一种类型。将图片生成二维码后通过扫码来调取云端存储的图片查看&#xff0c;这样可以一次预览多张图片并且不会占据内存&#xff0c;能够快速的实现图片内容…

PyPI 与 GitHub 的双因素认证 | 2FA 配置指南

唠唠闲话 最近登录 GitHub 一直提示设置双重验证。除此之外&#xff0c;开发 Python 包常用的平台—— PyPI &#xff0c;也宣布从今年开始强制启用双因素认证&#xff08;2FA&#xff09;。这一变化虽然在提高安全性方面起到了积极作用&#xff0c;但也给日常工作带来了麻烦。…

情感聊天赛道用al制作一分钟一条视频无脑玩法日入500+

详情介绍 这个赛道是用al快速制作情感故事聊天 原理就是用爆款的文案 al生成情感聊天视频全网独家赛道不拥挤 这个赛道几乎没人做一片蓝海 视频号分成计划 抖音中视频都可以做 建议做视频号创作者分成计划 单价高事少 视频号的平均用户年龄都是比较大的 对于这种情感故事的…