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

完整教程:LinuxC++——etcd分布式键值存储系统入门

etcd框架

  • etcd下载与安装
    • 了解 etcd
    • 在 Ubuntu 上下载与安装 etcd
      • 从预编译二进制包安装
      • 通过包管理器安装
      • 从源码编译安装
    • 运行 etcd
    • 使用 etcdctl 进行基本操作
      • 基础操作
      • 集群管理
      • 版本控制与历史
    • ⚙️ 生产环境注意事项

etcd下载与安装

在Linux Ubuntu中,etcd是一个高可用、强一致性的分布式键值存储系统 ,它常被用作服务发现、配置共享和协调分布式服务的核心组件。

了解 etcd

etcd 使用 Raft 一致性算法来确保数据的可靠性与一致性。它的特点包括:

简单:提供了清晰的HTTP API进行交互。

安全:支持SSL证书验证。

快速:官方基准测试显示,单实例支持每秒高达约16,000次写操作和约12,000次先写后读操作。

可靠:基于Raft算法实现分布式系统数据的可用性和一致性。

etcd 在微服务和容器编排领域应用广泛,Kubernetes 就使用 etcd 作为其存储后端,用于存储所有集群数据。

在 Ubuntu 上下载与安装 etcd

在 Ubuntu 上安装 etcd,主要有以下几种方式:

从预编译二进制包安装

这是最常见和直接的方法。

下载:访问 etcd 的 GitHub 发布页面,获取最新稳定版本的压缩包。例如,下载版本 3.5.4 的命令如下:

wget https://github.com/etcd-io/etcd/releases/download/v3.5.4/etcd-v3.5.4-linux-amd64.tar.gz

安装与配置

# 解压下载的压缩包
tar -zxvf etcd-v3.5.4-linux-amd64.tar.gz
# 进入解压后的目录
cd etcd-v3.5.4-linux-amd64
# 为 etcd 和 etcdctl 添加可执行权限
sudo chmod +x etcd etcdctl
# 将可执行文件移动到系统路径,以便在任意位置运行
sudo mv etcd etcdctl /usr/local/bin/

验证安装:运行 etcd --version 来检查安装是否成功。

通过包管理器安装

你也可以通过 Ubuntu 的包管理器安装,但仓库中的版本可能不是最新的。命令如下:

sudo apt update
sudo apt install etcd-server etcd-client

安装后,etcd 服务通常会自动启动,你可以使用 sudo systemctl status etcd 来查看服务状态。

从源码编译安装

如果你想尝试最新特性或进行开发,可以从源码编译安装。这需要你的系统已安装 Go 语言环境(etcd 使用 Go 编写)。具体步骤请参考 etcd 官方文档。

运行 etcd

启动 etcd 服务
完成安装后,你可以在终端直接启动 etcd 服务,或者设置开机自动启动:

sudo systemctl start etcd
#开机启动
sudo systemctl enable etcd

服务启动后,默认会在 2379 端口监听客户端请求,并在 2380 端口处理集群中节点间的通讯

使用 etcdctl 进行基本操作

基础操作

  1. 设置键值对

    etcdctl put <key> <value># 示例:存储一个名为 "name" 的键,值为 "etcd"etcdctl put name "etcd"
  2. 获取键值

    # 获取单个键
    etcdctl get <key># 示例:获取 "name" 的值etcdctl get name# 获取键的详细信息(包括版本、创建时间等)etcdctl get <key> -w json  # 或 -w fields# 范围查询(匹配前缀)etcdctl get <prefix> --prefix# 示例:获取所有以 "user_" 开头的键etcdctl get user_ --prefix
  3. 删除键

    # 删除单个键
    etcdctl del <key># 示例:删除 "name"etcdctl del name# 删除前缀匹配的键etcdctl del <prefix> --prefix

集群管理

  1. 查看集群成员

    etcdctl member list
  2. 添加集群成员

    etcdctl member add <成员名> --peer-urls=<成员的P2P通信地址># 示例etcdctl member add etcd2 --peer-urls=http://192.168.1.2:2380
  3. 移除集群成员

    etcdctl member remove <成员ID>  # 成员ID可通过 member list 获取
  4. 查看集群健康状态

    etcdctl endpoint health
  5. 查看集群状态

    etcdctl endpoint status -w table  # 表格形式展示

版本控制与历史

  1. 查看键的历史版本

    etcdctl get <key> --rev=<版本号># 示例:查看 "name" 在版本 3 时的值etcdctl get name --rev=3
  2. 获取键的所有历史版本

    etcdctl history <key>

⚙️ 生产环境注意事项

对于生产环境,单节点部署通常不够,建议部署多节点的 etcd 集群以实现高可用。

数据持久化:确保 etcd 的数据目录存储在持久化存储上,并考虑定期备份快照。

安全配置:为集群通信和客户端连接配置 TLS 加密和认证。

性能调优:根据工作负载调整心跳间隔、选举超时等参数。

http://www.hn-smt.com/news/239/

相关文章:

  • unity管理器设计:Manager of Managers
  • iview table 排序 columns 里面写 sortable: custom 不要写 sortable: true 不然会进行二次内部排序序号等 字段。
  • 本地运行nginx服务,模拟线上环境访问项目
  • git提交远程项目步骤
  • 2025 年搅拌器搅拌设备,侧入式搅拌设备,斜插式揽拌设备,卧式搅拌设备厂家最新推荐,聚焦资质、案例、售后的五家企业深度解读
  • 2025 年环保搅拌设备,搅拌装置设备,框式搅拌设备厂家最新推荐,实力品牌深度解析采购无忧之选!
  • CorelDRAW的shell扩展ShellXP.dll导致资源管理器explorer.exe卡死/冻结/无响应/挂起
  • 2025 年定制矿车,大型矿车,固定式矿车厂家最新推荐,产能、专利、环保三维数据透视
  • 醒图电脑版下载与安装教程(2025最新版)
  • 2025 年江苏电缆附件,热缩电缆附件,冷缩电缆附件,预制电缆附件厂家最新推荐,产能、专利、环保三维数据透视
  • Android Studio 使用glibc2.28的版本
  • 2025年10月兰花油品牌推荐榜:五款精华油深度对比与选购指南
  • 2025年浅拾兰花双萃致臻精华油:从成分与技术维度解析其护肤功效
  • 2025 年进口螺杆泵,萨伯特螺杆泵,污泥螺杆泵厂家最新推荐,实力品牌深度解析采购无忧之选!
  • 为什么 AI 模型的最小理解单位是「特征」?
  • 2025年移动车载变电站厂家最新推荐榜:陕西四方华能凭硬实力成优选
  • XiaoQuQu 的 2025 CSP-S 第二轮模拟 ROUND2
  • 2025年硬密封闸阀厂家权威推荐榜单:手动闸阀/明杆闸阀/法兰闸阀源头厂家精选
  • 深入解析:ArcGIS Manager Server Add Host页面报错 HTTP Status 500
  • 2025修护洗/二硫化硒去屑/香氛/控油蓬松/洗发水品牌推荐:MASIL玛丝兰引领功效细分赛道,哪个牌子好?看实测口碑榜
  • AOP面向切面编程思想
  • 如何找到心仪的 ChatBI 智能体?Aloudata Agent 推荐给你
  • 10月第二篇
  • 天翼云智慧上云月特惠来袭,智算上云正当时!
  • 2025年临沂一次性碗打包盒公司权威推荐榜单:一次性打包碗/一次性圆形打包碗/一次性打包碗商用源头公司精选
  • 洛谷题单指南-进阶数论-CF582A GCD Table
  • 状态迁移与场景法:搞定复杂业务流测试的利器
  • 实用指南:精读C++20设计模式——行动型设计模式:责任链
  • JimuReport 积木报表 v2.1.5 版本发布,免费的可视化报表和大屏
  • 2025年半自动冲芯机生产厂家权威推荐榜单:半自动矽钢片冲芯机/半自动铁芯冲压机/半自动冲芯设备源头厂家精选