ETCD 基本介绍与常见命令的使用

转载请标明出处:https://blog.csdn.net/donkor_/article/details/140171610

文章目录

  • 一、基本介绍
    • 1.1 参考
    • 1.2 什么是ETCD
    • 1.3 ETCD的特点
    • 1.4 ETCD的主要功能
    • 1.5 ETCD的整体架构
    • 1.6 什么时候用ETCD,什么时候用redis
  • 二、安装
  • 三、使用
    • 3.1 etcdctl
    • 3.2 常用命令
      • 3.2.1 获取一个键值的值
      • 3.2.2 设置一个键值对
      • 3.2.3 删除一个键值对
      • 3.2.4 获取一个目录下的所有键值对
      • 3.2.5 创建一个目录
      • 3.2.6 删除一个目录
      • 3.2.7 监听一个键的变化
      • 3.2.8 列出成员节点
      • 3.2.9 添加一个节点到集群
      • 3.2.10 从集群中删除一个节点


一、基本介绍

1.1 参考

官方文档:https://etcd.io/

1.2 什么是ETCD

EtcdCoreOS基于Raft协议开发的分布式key-value存储,可用于服务发现共享配置以及一致性保障(如数据库选主分布式锁等)。

在分布式系统中,如何管理节点间的状态一直是一个难题,etcd像是专门为集群环境的服务发现注册而涉及,它提供了数据TTL失效数据改变监视多值目录监听分布式锁原子操作等功能,可以方便的跟踪并管理集群节点状态

1.3 ETCD的特点

  • 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
  • 安全:支持SSL证书验证
  • 快速: 根据官方提供的benchmark数据,单实例支持每秒2k+读操作
  • 可靠: 采用raft算法,实现分布式系统数据的可用性和一致性

1.4 ETCD的主要功能

  • 分布式键值存储:etcd提供了一个可靠的键值存储系统,可以用于存储和检索数据。它将数据存储为键值对的形式,并支持原子性地读取和修改数据。

  • 分布式锁:etcd允许多个进程在分布式环境中协调对共享资源的访问。通过使用etcd提供的分布式锁功能,进程可以协调在同一时间只有一个进程可以访问某个资源。

  • 分布式通知:etcd支持订阅和发布事件的功能,可以在数据变化时通知相关的进程。这对于实现发布/订阅模型和实时通知非常有用。

  • 分布式选举:etcd可以用于分布式系统中的领导者选举。它提供了一种可靠的机制来选择一个节点作为领导者,并在领导者宕机时选择新的领导者。

  • 分布式配置共享:etcd可以用于共享配置信息。多个进程可以读取和修改在etcd中存储的配置信息,从而实现配置的统一管理和动态更新。

1.5 ETCD的整体架构

1.6 什么时候用ETCD,什么时候用redis

使用etcd和redis的选择取决于具体的需求和使用场景。下面是一些常见的考虑因素:

  • 数据一致性:etcd是一个高度一致的分布式键值存储系统,它的设计目标是提供强一致性的服务。而redis是一个内存数据库,它强调的是高性能和低延迟,对于一致性要求不高的场景更为适用。

  • 分布式特性:etcd是为构建分布式系统而设计的,它提供了分布式锁、选主和发布-订阅等特性,可以方便地实现分布式应用的协调与管理。而redis虽然也支持集群部署,但其分布式特性相对较弱,更适合用作缓存或临时存储。

  • 可靠性和持久化:etcd可以将数据持久化到磁盘,并支持数据的备份和恢复。而redis在默认情况下将数据存储在内存中,可以通过配置进行持久化,但相对于etcd来说,其可靠性较低。

  • 生态系统和社区支持:etcd作为Kubernetes的核心组件,得到了广泛的使用和社区支持,有丰富的文档和工具链。而redis作为一款老牌的开源数据库,同样具有庞大的用户群体和活跃的社区。

综上所述,如果你的应用需要强一致性分布式特性可靠性,以及与Kubernetes等生态系统的集成,那么etcd是一个更好的选择。而如果你更注重性能和灵活性,可以考虑使用redis

二、安装

安装教程:Docker部署ETCD 3.5.14(保姆级图文教程)

三、使用

3.1 etcdctl

etcdctl是一个命令行客户端,它能提供一些简洁的命令,供用户直接跟etcd服务打交道,而无需基于 HTTP API方式。可以方便我们在对服务进行测试或者手动修改数据库内容

etcd项目二进制发行包中已经包含了etcdctl工具etcdctl支持的命令大体上分为数据库操作非数据库操作两类

3.2 常用命令

3.2.1 获取一个键值的值

etcdctl get <key>

3.2.2 设置一个键值对

etcdctl put <key> <value>

3.2.3 删除一个键值对

etcdctl del <key>

3.2.4 获取一个目录下的所有键值对

etcdctl get --prefix <directory>

3.2.5 创建一个目录

etcdctl mkdir <directory>

3.2.6 删除一个目录

etcdctl rmdir <directory>

3.2.7 监听一个键的变化

etcdctl watch <key>

3.2.8 列出成员节点

etcdctl member list

3.2.9 添加一个节点到集群

etcdctl member add <name> <peer-url>

3.2.10 从集群中删除一个节点

etcdctl member remove <member-id>

这些是一些常用的etcdctl命令,还有其他更高级的命令可以用于集群管理配置。你可以通过运行etcdctl --help命令来获取更详细的帮助信息,了解etcdctl支持的所有命令和选项


完成ヾ(◍°∇°◍)ノ゙

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

审核平台前端新老仓库迁移

背景 审核平台接入50业务&#xff0c;提供在线审核及离线质检、新人培训等核心能力&#xff0c;同时提供数据报表、资源追踪、知识库等工具。随着平台的飞速发展&#xff0c;越来越多的新业务正在或即将接入审核平台&#xff0c;日均页面浏览量为百万级别。如今审核平台已是公司…

[Redis]哨兵机制

哨兵机制概念 在传统主从复制机制中&#xff0c;会存在一些问题&#xff1a; 1. 主节点发生故障时&#xff0c;进行主备切换的过程是复杂的&#xff0c;需要人工参与&#xff0c;导致故障恢复时间无法保障。 2. 主节点可以将读压力分散出去&#xff0c;但写压力/存储压力是无法…

直击园区消防管理现状,智慧消防相比传统消防管理的优势是什么

一、工业园区消防管理现状 1、消防信息智能化程度低 信息化手段落后&#xff0c;现场的数据信息无法即时传送至指挥中心&#xff0c;突发事件发生时&#xff0c;无法扁平化指挥到基层现场&#xff0c;应急处置能力不足。 2、防控体系不健全 存在监测盲点&#xff0c;火灾报警…

Mybatis实现RBAC权限模型查询

RBAC权限模型 Role-Based Access Control&#xff0c;中文意思是&#xff1a;基于角色&#xff08;Role&#xff09;的访问控制。这是一种广泛应用于计算机系统和网络安全领域的访问控制模型。 简单来说&#xff0c;就是通过将权限分配给➡角色&#xff0c;再将角色分配给➡用…

ABB机器人坐标系偏移指令

ABB机器人在坐标系中偏移用到的指令有&#xff1a;Offs和RelTool。Offs用在工件坐标系中偏移&#xff0c;而RelTool是在工具坐标系中偏移。 一、Offs用于在一个机械臂位置的工件坐标系中添加一个偏移量。 Offs (Point &#xff0c;XOffset&#xff0c; YOffset &#xff0c;Z…

【UE5.1】Chaos物理系统基础——05 蓝图绑定Chaos破裂或碰撞事件

步骤 1. 新建一个父类为Actor的蓝图&#xff0c;这里命名为“BP_ChaosExplosionEvent” 打开“BP_ChaosExplosionEvent”&#xff0c;添加一个变量&#xff0c;这里命名为“GC”&#xff0c;变量类型为“几何体集actor”&#xff0c;设置为可编辑实例 在事件图表中添加如下节点…

Unity休闲手机游戏开发课程

课程介绍 Unity休闲手机游戏开发课程将教您如何利用Unity游戏引擎创建令人愉快的休闲手机游戏。从基础的游戏开发知识到高级的游戏制作技巧&#xff0c;您将学习到创建各种类型的休闲游戏所需的关键技能和工具。无论您是初学者还是有一定经验的开发者&#xff0c;本课程都能帮助…

基于JavaScript、puppeteer的爬虫

前期准备: npm puppeteer import puppeteer from puppeteer; puppeteer文档 第一步&#xff1a;启动浏览器&#xff0c;跳转到需要爬取的页面 const browser await puppeteer.launch({ headless: false });const page await browser.newPage();await page.goto(url, { w…

ssm高校宿舍用电管理系统-计算机毕业设计源码97859

摘要 随着高校规模的扩大和学生数量的增加&#xff0c;高校宿舍的用电需求也日益庞大。为了提高用电效率、节约能源、确保用电安全和方便管理&#xff0c;开发一个高校宿舍用电管理系统具有重要意义。本系统将采用Java作为后端开发语言&#xff0c;具备跨平台特性&#xff0c;能…

收银系统源码-营销活动-幸运抽奖

1. 功能描述 营运抽奖&#xff1a;智慧新零售收银系统&#xff0c;线上商城营销插件&#xff0c;商户/门店在小程序商城上设置抽奖活动&#xff0c;中奖人员可内定&#xff1b; 2.适用场景 新店开业、门店周年庆、节假日等特定时间促销&#xff1b;会员拉新&#xff0c;需会…

k8s-第四节-Service

Service Service 通过 label 关联对应的 PodServcie 生命周期不跟 Pod 绑定&#xff0c;不会因为 Pod 重创改变 IP提供了负载均衡功能&#xff0c;自动转发流量到不同 Pod可对集群外部提供访问端口集群内部可通过服务名字访问 创建 Service kubectl apply -f service.yamlkub…

多个comfyui之间如何共享模型,节省存储空间

COMFYUI 模型共享插件教程 一、COMFYUI 模型共享插件教程1.1 插件特性1.2 插件介绍1.3 链接 二、详细配置步骤2.1 开启开发者选项2.2 放置插件文件2.3 放置配置文件2.4 编辑配置文件2.4.1 其他配置项 三、启动COMFYUI并验证3.1 启动COMFYUI3.2 验证模型共享3.3 多整合包共享配置…

C++11|完美转化 新的类功能 可变参数模板

目录 一、完美转发 1.1模板中的&&万能引用 1.2完美转发 1.3完美转发实际中的引用场景 二、新的类功能 2.1移动构造和移动赋值规则详解 2.2类成员变量初始化和强制生成默认函数(default) 2.3禁止生成默认函数的关键字(delete) 三、可变参数模板 3.1递归函数方式…

TCP和IP数据包结构

一、问题引入 一般我们在谈上网速度的时候&#xff0c;专业上用带宽来描述&#xff0c;其实无论说网速或者带宽都是不准确的&#xff0c;呵呵。比如&#xff1a;1兆&#xff0c;512K……有些在学校的学生&#xff0c;也许会有疑问&#xff0c;明明我的业务是1M&#xff0c;为…

某yi逆向sign值

1. 定位 url: aHR0cHM6Ly93d3cuaXFpeWkuY29tL3ZfMTlycjRyZ3AxZy5odG1s打开网址&#xff0c;找到sign值所在位置 应该是32位大写md5加密&#xff0c;可以看到console中加载出来很多东西&#xff0c;往下翻到base_info所在位置 点进去main.js&#xff0c;打上断点 2. 调试 刷…

项目基础知识

1.JDBC编程和MySQL数据库 数据库的连接&#xff08;以前写qq项目时的代码&#xff09; package com.wu.Util; import java.sql.*; public class JDBCUtil {private static JDBCUtil jdbcUtil null;private JDBCUtil() {}public static JDBCUtil getJdbcUtil() {if (jdbcUtil…

基于Echarts进行图表组件的封装

什么是Echarts 是一个使用js实现的开源可视库&#xff0c;提供了多种图表&#xff0c;但是当我们在项目中进行使用的时候可能就是需要进行一系列的相关配置如&#xff1a; 标题&#xff0c;类型&#xff0c;x轴&#xff0c;y轴等&#xff0c;当我们使用较为频繁的时候就容易导…

昇思25天学习打卡营第16天 | DCGAN生成漫画头像

这两天把minspore配置到我的电脑上了&#xff0c;然后运行就没什么问题了✨&#x1f60a; 今天学这个DCGAN生成漫画头像&#xff0c;我超级感兴趣的嘞&#x1f984;&#x1f970; GAN基础原理 这部分原理介绍参考GAN图像生成。 DCGAN原理 DCGAN&#xff08;深度卷积对抗生成…

一本超简单能用Python实现办公自动化的神书!让我轻松摆脱办公烦恼!

《超简单&#xff1a;用Python让Excel飞起来》 这本书旨在通过Python与Excel的“强强联手”&#xff0c;为办公人员提供一套高效的数据处理方案。书中还介绍了如何在Excel中调用Python代码&#xff0c;进一步拓宽了办公自动化的应用范围。 全书共9章。第1~3章主要讲解Python编…

【数据结构】06.栈队列

一、栈 1.1栈的概念及结构 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Last In First Out)的原则。 压栈&#…