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

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


一、基本介绍

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支持的所有命令和选项


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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值