etcd集群部署

1.etcd介绍

1.1 什么是etcd

etcd的官方定义如下:

A distributed, reliable key-value store for the most critical data of 
distributed system

etcd是一个Go语言编写的分布式、高可用的一致性键值存储系统,用于提供可靠的分布式键值(key
value)存储、配置共享和服务发现等功能。
官网:etcd官网
文档:文档地址

1.2 etcd的应用场景

分布式系统中的数据分为控制数据和应用数据。etcd的使用场景默认处理的数据都是控制数据,对于
应用数据,只推荐数据量很小,但是更新访问频繁的情况。常见的etcd使用场景包括:服务发现、分
布式锁、分布式队列、分布式通知和协调、主备选举等。

1.3为什么使用etcd

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

  • etcd更加稳定可靠,它的唯一目标就是把分布式一致性KV存储做到极致,所以它更注重稳定 性和扩展性。
  • 在服务发现的实现上,etcd使用的是节点租约(Lease),并且支持Group(多key):而ZooKeeper使用的是临时节点,临时节点存在不少的问题。
  • etcd支持稳定的watch,而不是ZooKeeper一样简单的单次触发(onetimetrigger)watch 因为在微服务的环境下,通过调度系统的调度,一个服务随时可能会下线,也可能为应对临时访问压力而增加新的服务节点,而很多调度系统是需要得到完整节点历史记录的,在这方面,etcd可以存储数十万个历史变更。
  • etcd支持MVCC(多版本并发控制),因为有协同系统需要无锁操作。
  • etcd支持更大的数据规模,支持存储百万到千万级别的key。
  • 相比ZooKeeper,etcd的性能更好。在一个由3台8核节点组成的云服务器上,etcdv3版本
    可以做到每秒数万次的写操作和数十万次的读操作,

在这里插入图片描述

2.etcd实战

2.1 etcd环境搭建

对于搭建开发和测试环境,最简单和快捷的方式是在本地部署一个单机版或集群版的etcd环境。
单实例etcd部署
etcd社区提供了编译好的etcd服务器和客户端的二进制文件以下载

 wget https://github.com/etcd-io/etcd/releases/download/v3.5.13/etcd-v3.5.13-linux-amd64.tar.gz
 tar -zxvf etcd-v3.5.13-linux-amd64.tar.gz
 cd etcd-v3.5.13-linux-amd64
#启动etcd服务
./etcd
#后台启动etcd,日志文件输出到/tmp/etcd.log目录
 nohup./etcd>/tmp/etcd.log 2>&1 &
#查看etcd版本
./etcd-version
#将etcd和etcdctl复制到/usr/local/bin目录,系统中可以直接调用etcd/etcdctl
 cp etcd etcdctl/usr/local/bin

2.2单机多实例etcd部署

etcdserver默认使用2380端口监听集群中其他server的请求,但是如果在同一台机器上有多个
etcdserver都在同一个端口上监听,那么会导致端口冲突。作为示例,我们分别让3个etcdserver
监听在12380、22380、32380端口上。
我们可以通过进程管理工具goreman,快速创建、停止本地的多节点etcd集群


#安装goreman,依赖go环境

go install github.com/mattn/goreman@latest
goreman help

利用goreman创建3节点etcd集群
编写local-cluster-profile文件

etcd1: etcd --name infra1 --listen-client-urls http://127.0.0.1:12379 --advertise-client-urls http://127.0.0.1:12379 --listen-peer urls http://127.0.0.1:12380 --initial-advertise-peer-urls http://127.0.0.1:12380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http:///127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new
etcd2: etcd --name infra2 --listen-client-urls http://127.0.0.1:22379 --advertise-client-urls http://127.0.0.1:22379 --listen-peer urls http://127.0.0.1:22380 --initial-advertise-peer-urls http://127.0.0.1:22380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http:///127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new
etcd3: etcd --name infra3 --listen-client-urls http://127.0.0.1:32379 --advertise-client-urls http://127.0.0.1:32379 --listen-peer urls http://127.0.0.1:32380 --initial-advertise-peer-urls http://127.0.0.1:32380 --initial-cluster-token etcd-cluster-1 --initial-cluster 'infra1=http://127.0.0.1:12380,infra2=http:///127.0.0.1:22380,infra3=http://127.0.0.1:32380' --initial-cluster-state new

在这里插入图片描述

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

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

相关文章

Nginx-狂神说

Nginx概述 公司产品出现瓶颈? 我们公司项目刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户。 但是慢慢的,使用我们平台…

C++ 常用UI库

AWTK github gitee doc scons 类似RT-Thread element github C Cross platfrom C GUI libraries,QT可替代方案。调试包 SDL GUI cegui 创作不易, 小小的支持一下吧!

如何在Windows 10上对硬盘进行碎片整理?这里提供步骤

随着时间的推移,由于文件系统中的碎片,硬盘驱动器可能会开始以较低的效率运行。为了加快驱动器的速度,你可以使用内置工具在Windows 10中对其进行碎片整理和优化。方法如下。 什么是碎片整理 随着时间的推移,组成文件的数据块&a…

YOLOv10详细解读 | 一文带你深入了解yolov10的创新点(附网络结构图 + 举例说明)

前言 Hello大家好,我是Snu77,继YOLOv9发布时间没有多久,YOLOv10就紧接着发布于2024.5.23号(不得不感叹YOLO系列的发展速度,但要纠正大家的观点就是不是最新的就一定最好)! 本文给大家带来的是…

Unity开发——XLua热更新之Hotfix配置(包含xlua获取与导入)

一、Git上获取xlua 最新的xlua包,下载地址链接:https://github.com/Tencent/xLua 二、Unity添加xlua 解压xlua压缩包后,将xlua里的Assets里的文件直接复制进Unity的Assets文件夹下。 成功导入后,unity工具栏会出现xlua选项。 …

vue3瀑布流示例,左侧菜单根据窗口滚动条进行固定和取消固定,实现瀑布流demo

瀑布流demo的实现效果: 效果说明: 1.使用vue3实现瀑布流效果; 2.瀑布流横向设置5等分,可根据个人需求调整; 3.左侧菜单可根据右侧滚动条滑动时进行固定和取消固定,实现更优的展示效果; 4.瀑…

Django 里html模板

Django 提供两种方式让程序员自定义html模板。 第一种方法 在项目文件夹里的urls.py进行添加 修改代码如下 from django.contrib import admin from django.urls import path from app01 import views # 得添加这行urlpatterns [path(xxx/, views.home), # 添加这行path(…

从0开始学统计-你能区分率和构成比吗?

1.数据的变异度如何描述? 数据的变异度描述了数据集中数值之间的差异或波动程度。常用的描述数据变异度的统计量包括: (1)范围(Range):范围是数据集中最大值与最小值之间的差异,表…

NDIS小端口驱动(九)

PCIe设备难免会遇到一些重置设备的请求,例如重置总线的时候,但是由于NIC网卡的多样性,重置设备确实也有许多要注意的地方,另外还有一些包含WDM的NDIS驱动 微型端口驱动程序硬件重置 微型端口驱动程序必须向 NdisMRegisterMinipo…

重新思考:Netflix 的边缘负载均衡

声明 本文是对Netflix 博客的翻译 前言 ​ 在先前关于Zuul 2开源的文章中,我们简要概述了近期在负载均衡方面的一些工作。在这篇文章中,我们将更详细地介绍这项工作的原因、方法和结果。 ​ 因此,我们开始从Zuul和其他团队那里学习&#…

L01_JVM 高频知识图谱

这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。 类的生命周期 类加载器 JVM 的内存…

CAD二次开发(2)-将直线对象添加到CAD图形文件

1. 准备工作 创建一个类库项目,如下: 2. 分析Line对象 Line类的初始化方法和参数 using Autodesk.AutoCAD.DatabaseServices; Line line new Line();Line 继承Curve 继承Entity 继承DBObject 继承Drawable 继承RXObject 初始化方法有两个&#xf…

2024年汉字小达人活动4个多月开赛:18道历年选择题和答案、解析

根据近年的安排,2024年第11届汉字小达人比赛还有4个多月就启动,那么孩子们如何利用这段时间有条不紊地备考呢?我的建议是两手准备:①把小学1-5年级的语文课本上的知识点熟悉,重点是字、词、成语、古诗。②把历年真题刷…

求两个整数最大公约数的方法

可以使用递归来实现,编写gcd函数返回最终的结果(最大公约数)。传入两个参数,如果存在一个数字不大于0就返回0,利用上面的公式就可以得出最后的结果。

电脑远程控制另一台电脑怎么弄?

可以远程控制另一台电脑吗? “你好,我对远程访问技术不太了解。现在,我希望我的朋友可以远程控制我的Windows 10电脑,以便她能帮我解决一些问题。请问,有没有免费的方法可以实现这种远程控制?我该如何操作…

机器学习大模型驱动:未来的趋势与应用

文章目录 📑前言一、什么是机器学习大模型?1.1 大模型的特点1.2 大模型的技术基础 二、大模型的技术实现2.1 Transformer 架构2.2 预训练和微调2.3 模型并行和数据并行 三、大模型的应用场景3.1 自然语言处理(NLP)3.2 计算机视觉&…

SpringMVC源码解读[1] -Spring MVC 环境搭建

源码地址: https://github.com/chen-jiacheng/springmvc-quickstart 一、使用 IDEA 创建 Spring MVC 项目 直接创建项目即可 默认项目结构: springmvc-quickstart ├── pom.xml └── src├── main│ ├── java│ │ └── com│ │ └── chenjiache…

2024Spring> HNU-计算机系统-实验4-Buflab-导引+验收

前言 称不上导引了,因为验收已经结束了。主要是最近比较忙,在准备期末考试。周五晚上才开始看实验,自己跟着做了一遍实验,感觉难度还是比bomblab要低的,但是如果用心做的话对于栈帧的理解确实能上几个档次。 实验参考…

(南京观海微电子)——TFT LCM的作用

VCOM介绍 VCOM是液晶分子偏转的参考电压 ,要求要稳定,对液晶显示有直接影响,具体的屏不同的话 也是不同的。 电压的具体值是根据输入的数据以及Vcom电压大小来确定的,用来显示各种不同灰阶,也就是实现彩色显示GAMMA简…