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

《Linux运维总结:基于Ubuntu 22.04+x86_64架构CPU部署etcd 3.5.15二进制分布式集群》

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


一、功能简介

1、什么是etcd

etcd 是一个分布式、可靠的键值存储系统,用于分布式系统中存储关键核心数据。它由 CoreOS 开发,并且是开源的,授权协议为 Apache 许可证。etcd 内部采用了 Raft 一致性算法,可以实现配置共享和服务发现。 etcd中文文档可参考如下:Etcd 中文文档或者Etcd官方文档中文版。

2、etcd 的主要特性包括:

1、简单:安装配置简单,提供了 HTTP API 进行交互,使用也很简单。
2、键值对存储:将数据存储在分层组织的目录中,类似于标准文件系统。
3、监控变更:可以监视特定的键或目录以检测更改,并对值的更改作出反应。
4、 支持TLS客户端安全认证
5、性能:单实例(V3)支持每秒10KQps。
6、可靠: 使用 Raft 算法充分保证了分布式系统数据的强一致性
7、默认情况下,etcd 会将数据更新持久化到磁盘上。
8、使用 Go 语言编写,易于部署和维护。

3、典型应用场景:

1. 服务注册与发现:在微服务架构中,etcd 可以作为服务发现的服务注册中心。
2. 配置管理:存储和管理应用程序的配置信息。
3. 消息发布与订阅:使用 etcd 的 watch 机制来实现消息的发布与订阅模式。
4. 分布式通知与协调:用于在分布式系统中实现通知和协调逻辑。
5. 分布式锁:利用 etcd 实现分布式锁,确保分布式系统中资源的互斥访问。

4、有2个著名开源项目使用etcd

1、Kubernetes (K8s):Kubernetes 使用 etcd 作为其核心存储系统,用于存储集群的状态信息,如节点、Pods、Services、Volumes 等。Kubernetes 依赖 etcd 来保证其状态的一致性和高可用性。
2、CoreDNS: CoreDNS 是一个灵活且可扩展的 DNS 服务器,它使用 etcd 作为数据存储后端之一。CoreDNS 可以通过 etcd 插件来实现动态的 DNS 记录更新。

5、etcd、Zookeeper 和 Consul对比

特性/工具 etcd zookeeper Consul
一致性模型 强一致性 (Raft) 强一致性 (ZAB) 最终一致性 (可配置为强一致性)
扩展性 良好,适合大量键值对良好,但在大量数据时可能遇到性能瓶颈可能遭受高延迟和内存压力
功能和易用性 API 简洁,易于使用 功能强大,支持多种高级特性 API 设计友好,易于集成
服务发现 支持服务发现 支持服务发现 专门设计用于服务发现
健康检查 不直接支持 不直接支持 支持健康检查
安全性 支持客户端证书验证 支持安全配置 支持 TLS 和 ACLs
多数据中心 支持多数据中心配置 支持多数据中心配置 原生支持多数据中心配置
语言和生态 使用 Go 语言,广泛的客户端库支持 使用 Java 编写,适合 Java 应用程序 使用 Go 语言,支持多种语言的客户端库
社区和生态 活跃的社区,是 Kubernetes 的一部分 历史悠久,庞大的用户基础 良好的文档和社区支持
性能 在处理大量键值对时表现出色 在某些场景下提供了更好的最小延迟 性能取决于使用场景
使用场景 配置管理、服务注册和发现等场景 复杂协调服务 服务发现、健康检查和配置管理等场景

二、部署说明

1、环境信息

主机IP 节点 操作系统 内核版本 etcd版本
192.168.1.111 etcd-1 Ubuntu 22.04.4 LTS

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 样式与特效(2)——新闻列表
  • java之方法引用 —— ::
  • c语言第七天笔记
  • IPython的魔法:深入探索%%pastebin命令的奥秘
  • Python切片的用法
  • STM32DMA数据传输
  • Golang之OpenGL(一)
  • 平舌、翘舌音学习: z、c、s--zh、ch、sh
  • 使用 MinIO、Langchain 和 Ray Data 构建分布式嵌入式子系统
  • electron-builder打包vue2项目问题合集
  • Java | Leetcode Java题解之第316题去除重复字母
  • MongoDB简介及其在Java中的应用
  • 大语言模型(LLM)快速理解
  • 记录一次服务器被(crontab)木马入侵事件
  • 【Nuxt】服务端渲染 SSR
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Netty 4.1 源代码学习:线程模型
  • SOFAMosn配置模型
  • webgl (原生)基础入门指南【一】
  • 巧用 TypeScript (一)
  • 想写好前端,先练好内功
  • 鱼骨图 - 如何绘制?
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #我与Java虚拟机的故事#连载18:JAVA成长之路
  • $(document).ready(function(){}), $().ready(function(){})和$(function(){})三者区别
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (~_~)
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (2)nginx 安装、启停
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (第27天)Oracle 数据泵转换分区表
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (十二)springboot实战——SSE服务推送事件案例实现
  • (新)网络工程师考点串讲与真题详解
  • (转载)Google Chrome调试JS
  • (转载)Linux网络编程入门
  • (转载)利用webkit抓取动态网页和链接
  • (转载)虚幻引擎3--【UnrealScript教程】章节一:20.location和rotation
  • .ai域名是什么后缀?
  • .bat批处理(一):@echo off
  • .NET 事件模型教程(二)
  • .NET/C# 使用反射注册事件
  • .NET多线程执行函数
  • .NET构架之我见
  • .NET连接MongoDB数据库实例教程
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • ??在JSP中,java和JavaScript如何交互?
  • @SpringBootConfiguration重复加载报错
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • @取消转义
  • [ SNOI 2013 ] Quare
  • [ACL2022] Text Smoothing: 一种在文本分类任务上的数据增强方法