当前位置: 首页 > news >正文

etcd的备份与恢复

一 为什么使用etcd

与ZooKeeper相比,etcd更简单,安装、部署和使用更加容易,并且etcd的某些功能是ZooKeeper所没有的。因此,在很多场景下,etcd 比ZooKeeper更受用户的青,具体表现在如下几个方面:

1 etcd更加稳定可靠,它的唯一目标就是把分布式一致性KV存储做到极致,所以它更注重稳定性和扩展性。

在服务发现的实现上,etcd使用的是节点租约(Lease),并且支持Group(多key);而ZooKeeper使用的是临时节点,临时节点存在不少的问题。

etcd支持稳定的 watch,而不是ZooKeeper一样简单的单次触发( one time trigger )watch。因为在微服务的环境下,通过调度系统的调度,一个服务随时可能会下线,也可能为应对临时访问压力而增加新的服务节点,而很多调度系统是需要得到完整节点历史记录的,在这方面,etcd可以存储数十万个历史变更。

  • etcd支持MVCC(多版本并发控制),因为有协同系统需要无锁操作。
  • etcd支持更大的数据规模,支持存储百万到千万级别的key。
  • 相比ZooKeeper,etcd 的性能更好。在一个由3台8核节点组成的云服务器上,etcd v3版本可以做到每秒数万次的写操作和数十万次的读提作。

二 上图是etcd基础架构图,按照分层模型,etcd可分为

  • 客户端(Client)层、
  • API(API)网络层、
  • Raft(Raft)算法层、
  • 逻辑层和存储层   功能如下:

客户端(Client)层:客户端(Client)层包括客户端v2和v3两个大版本API(API)客户端库,提供了简洁易用的API,同时支持负载均衡、节点间故障自动转移,可极大降低业务使用etcd复杂度,提升开发效率、服务可用性。

·API网络层:API网络层主要包括客户端访问服务器和服务器节点之间的通信协议。一方面,客户端访问etcd服务器的API分为v2和v3两个大版本。V2API使用HTTP/1.x协议,V3API使用gRPC协议。同时v3通过网关组件也支持HTTP/1.x协议,便于各种语言的服务调用。另一方面,服务器之间通信协议,是指节点间通过(Raft)算法实现数据复制和领导者(Leader)选举等功能时使用的HTTP协议。

·Ratt(Raft)算法层:Raft(Raft)算法层实现了领导者(Leader)选举、日志复制、阅读指数(Readindex)等核心算法特性,用于保障eicd多个节点间的数据一致性、提升服务可用性等,是ejcd的基石和亮点。

功能逻辑层:etcd核心特性实现层,如典型的KVServer模块、MVCC模块、Auth鉴权模块、Lease(Lease)租约模块、Compater压缩模块等,其中MVCC模块主要由Tree ndex模块和Boltdb模块组成。

·存储层:存储层包含预写日志(WAL)模块、快照(Snapshot)模块、boltdb模块。其中WAL可保障etcd崩溃后数据不丢失,boltdb则保存了集群元数据和用户写入的数据。

相关文章:

etcd的备份与恢复

一 为什么使用etcd 与ZooKeeper相比,etcd更简单,安装、部署和使用更加容易,并且etcd的某些功能是ZooKeeper所没有的。因此,在很多场景下,etcd 比ZooKeeper更受用户的青,具体表现在如下几个方面: 1 etcd更…...

从 Pandas 到 Polars 十八:数据科学 2025,对未来几年内数据科学领域发展的预测或展望

我在2021年底开始使用Polars和DuckDB。我立刻意识到这些库很快就会成为数据科学生态系统的核心。自那时起,这些库的受欢迎程度呈指数级增长。 在这篇文章中,我做出了一些关于未来几年数据科学领域的发展方向和原因的预测。 这篇文章旨在检验我的预测能力…...

【postgresql】pg_dump备份数据库

pg_dump 介绍 pg_dump 是一个用于备份 PostgreSQL 数据库的实用工具。它可以将数据库的内容导出为一个 SQL 脚本文件或其他格式的文件,以便在需要时进行恢复或迁移。 基本用法 pg_dump [选项] [数据库名] 命令选项 -h 或 --host:指定数据库服务器的主…...

服务器的80和443端口关闭也能申请SSL证书

一、简介 在服务器的80和443端口关闭的情况下,确实可以申请SSL证书,但申请过程和方法会根据证书类型和验证方式的不同而有所差异。 通常如果是网站域名申请SSL证书,哪怕服务器的80、443端口都打不开,也可以通过DNS解析的方式来验…...

Odoo17应用、模型、字段

新建最简应用 先启用开发人员模式。 新建一个没有菜单项的空壳应用(模块/插件): 必须至少包含 2 个文件: __manifest__.py 文件和文件 __init__.py 。 该 __init__.py 文件目前可以保持为空,我们将在下一章中返回。另一方面,该…...

Airtest的控制手机滑动位置偏差修正方法总结

提起Airtest的控制手机滑动位置,就会想起swipe,因为这种方法比较常见,对于没有精度控制的朋友完全够用, 我现在遇到精度控制时,大家都觉得精度不够,现在我对滑动精度控制,找到比较好的方法&…...

【机器学习】Grid Search: 一种系统性的超参数优化方法

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Grid Search: 一种系统性的超参数优化方法引言什么是Grid Search?Gr…...

Laravel Passport:API认证的瑞士军刀

Laravel Passport:API认证的瑞士军刀 在现代Web应用中,API的安全认证是一个核心问题。Laravel Passport提供了一个全面的解决方案,用于构建OAuth2.0认证服务器。它使得API的认证变得简单而强大,支持多种认证方式,包括…...

SpringBoot Bean管理

我们知道可以通过Spring当中提供的注解Component以及它的三个衍生注解(Controller、Service、Repository)来声明IOC容器中的bean对象,同时我们也学习了如何为应用程序注入运行时所需要依赖的bean对象,也就是依赖注入DI。 本篇主要…...

Qt5.12.2安装教程

文章目录 文章介绍下载连接安装教程 文章介绍 安装Qt5.12.2 下载连接 点击官网下载 安装包下载完毕 安装教程 点开设置,添加临时储存库,复制连接“https://download.qt.io/online/qtsdkrepository/windows_x86/root/qt/” 点击测试&#xff0…...

2024年大数据高频面试题(中篇)

文章目录 Kafka为什么要用消息队列为什么选择了kafkakafka的组件与作用(架构)kafka为什么要分区Kafka生产者分区策略kafka的数据可靠性怎么保证ack应答机制(可问:造成数据重复和丢失的相关问题)副本数据同步策略ISRkafka的副本机制kafka的消费分区分配策略Range分区分配策略…...

Python编程工具PyCharm和Jupyter Notebook的使用差异

在编写Python程序时需要用到相应的编程工具,PyCharm和Jupyter Notebook是最常用2款软件。 PyCharm是很强大的综合编程软件,代码提示、代码自动补全、语法检验、文本彩色显示等对于新手来说实在太方便了,但在做数据分析时发现不太方便&#xf…...

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH)

顶顶通呼叫中心中间件-被叫路由、目的地绑定(mod_cti基于FreeSWITCH) 1、配置分机 点击分机 -> 找到你需要设置的分机 ->呼叫路由设置为external,这里需要设置的分机是呼叫的并不是坐席的分机呼叫路由 2、配置拨号方案 点击拨号方案 -> 输入目的地绑定 …...

【数据集处理工具】根据COCO数据集的json标注文件实现训练与图像的文件划分

根据COCO数据集的json标注文件实现训练与图像的文件划分 一、适用场景:二、COCO数据集简介:三、场景细化:四、代码优势:五、代码 一、适用场景: 适用于一个常见的计算机视觉项目应用场景,特别是当涉及到使…...

vue 如何做一个动态的 BreadCrumb 组件,el-breadcrumb ElementUI

vue 如何做一个动态的 BreadCrumb 组件 el-breadcrumb ElementUI 一、ElementUI 中的 BreadCrumb 定义 elementUI 中的 Breadcrumb 组件是这样定义的 <template><el-breadcrumb separator"/"><el-breadcrumb-item :to"{ path: / }">主…...

FFmpeg播放视频

VS2017+FFmpeg6.2.r113110+SDL2.30.5 1.下载 ShiftMediaProject/FFmpeg 2.下载SDL2 3.新建VC++控制台应用 3.配置include和lib 4.把FFmpeg和SDL的dll 复制到工程Debug目录下,并设置调试命令...

重叠区间的求和

#摘抄 GetGeneLength/src/GetGeneLength/GetGeneLength.py at main PoShine/GetGeneLength GitHub def main(): """ Extract gene length based on featureCount calculation gene nonredundant exon length method. """ # 引…...

java包装类 及其缓存

Java 包装类&#xff08;Wrapper Class&#xff09;是将基本数据类型转换为对象的方式&#xff0c;每个基本数据类型在 java.lang 包中都有一个相应的包装类&#xff1a; Boolean 对应基本类型 boolean Character 对应基本类型 char Integer 对应基本类型 int Float 对应基本…...

大龄程序员的出路在哪里?

对于许多资深程序员而言&#xff0c;年龄并非职业发展的桎梏&#xff0c;反而如同陈年的美酒&#xff0c;随着时间的流逝愈发醇厚。他们手握的是丰富的经验和不断进阶的技能&#xff0c;而这些都为他们打开了职业发展的无数扇大门。让我们一同探索这些令人心动的可能性吧&#…...

Unity不用脚本实现点击按钮让另外一个物体隐藏

1.首先在场景中创建一个按钮和一个其他随便什么东西 2.点击按钮中的这个加号 3.然后将刚刚你创建的物体拖到这里来 4.然后依次点击下面这些给按钮绑定事件 5.运行游戏并点击按钮&#xff0c;就会发现拖进来的物体消失了 总结&#xff1a;如果按钮的功能单一&#xff0c;可以使用…...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

python爬虫——气象数据爬取

一、导入库与全局配置 python 运行 import json import datetime import time import requests from sqlalchemy import create_engine import csv import pandas as pd作用&#xff1a; 引入数据解析、网络请求、时间处理、数据库操作等所需库。requests&#xff1a;发送 …...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...

简单介绍C++中 string与wstring

在C中&#xff0c;string和wstring是两种用于处理不同字符编码的字符串类型&#xff0c;分别基于char和wchar_t字符类型。以下是它们的详细说明和对比&#xff1a; 1. 基础定义 string 类型&#xff1a;std::string 字符类型&#xff1a;char&#xff08;通常为8位&#xff09…...

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈

【导读】 本文针对无人机&#xff08;UAV&#xff09;视频中目标尺寸小、运动快导致的多目标跟踪难题&#xff0c;提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪&#xff08;贴合无人机场景特性&#xff09;&#xff0c;并改进传统外观匹配算法以关联此类检测…...