etcd的安装和使用

安装及启动

在Mac上,推荐使用brew安装

brew install etcd

可以使用etcd启动服务,但更推荐使用 brew services 来管理使用brew安装的应用~

bash 复制代码
# 启动某个应用,这里用 etcd 做演示
brew services start etcd

# 停止某个应用
brew services stop etcd

# 查看当前应用列表
# 可以看到相关应用的状况
brew services list 

相关操作

验证是否成功启动:

etcdctl endpoint health

curl -L http://172.16.101.55:2379/health

查看版本:

curl http://127.0.0.1:2379/version

V3.4版本之后默认是V3接口,不再支持V2:

etcd v3使用gRPC作为其消息传递协议。 etcd项目包括一个基于gRPC的Go客户端和一个命令行实用程序etcdctl,用于通过gRPC与etcd集群进行通信。 对于不支持gRPC的语言,etcd提供了JSON gRPC网关。 该网关提供一个RESTful代理,该代理将HTTP/JSON请求转换为gRPC消息

ETCD v3 restful api 使用详解

v2和v3接口差异较大, 如果想继续使用v2, 需要在启动时指定 --enable-v2=true,否则直接请求v2的api会报404

etcd --enable-v2=true:

(下面继续使用v2接口)

  • 查看key:

curl 127.0.0.1:2379/v2/keys

  • 新建key:

(如果key之前存在,则默认会先删除,再新建一个key。如果想要直接update,则需追加 -d prevExist=true,但若加该参数,如果key之前不存在会报错)

curl 127.0.0.1:2379/v2/keys/ckl -XPUT -d value="shuang"

  • 创建目录:

curl 127.0.0.1:2379/v2/keys/mulu666 -XPUT -d dir=true

  • 创建带ttl的键值(单位为秒):

curl 127.0.0.1:2379/v2/keys/key_with_expired_time -XPUT -d value='这是key的值,这个key生命周期是5s' -d ttl=5

  • 创建有序键值:
s 复制代码
curl 127.0.0.1:2379/v2/keys/beauty -XPOST -d value="西施"
curl 127.0.0.1:2379/v2/keys/beauty -XPOST -d value="昭君"
curl 127.0.0.1:2379/v2/keys/beauty -XPOST -d value="貂蝉"
curl 127.0.0.1:2379/v2/keys/beauty -XPOST -d value="杨玉环"
  • 删除指定的键:

curl 127.0.0.1:2379/v2/keys/ckl -XDELETE

  • 列出所有的集群成员:

curl 127.0.0.1:2379/v2/members

  • 查看leader:

curl 127.0.0.1:2379/v2/stats/leader

  • 查看集群运行状态:

curl 127.0.0.1:2379/v2/stats/store

除去restful Api,etcdctl命令行也支持相关操作,如:

  • 放入一个 键值对:

etcdctl put "myname" "fliter"

  • 取出一个 键值对 etcdctl get "myname"

  • 删除一个 键值对 etcdctl del "myname"

命令行操作和resuful Api操作应该是互通的。但看起来数据居然没有共通,有点奇怪...

不错的GUI

有一些还不错的第三方开源UI,可以界面化查看和操作

比如 etcd-manage

例如,可以在界面新增key,或修改内容等

看起来和etcdctl是通的,神奇的是和restful Api不通...

相关推荐
忍冬行者14 小时前
Elasticsearch 超大日志流量集群搭建(网关 + 独立 Master + 独立 Data 纯生产架构,角色完全分离,百万级日志吞吐)
大数据·elasticsearch·云原生·架构·云计算
Curvatureflight14 小时前
API网关设计与实现:从单体到微服务的过渡
微服务·云原生·架构
颜淡慕潇14 小时前
动态代理赋能:高效爬取沃尔玛海量商品信息与AI分析实战
人工智能·后端
半夏知半秋15 小时前
kcp学习-通用的kcp lua绑定
服务器·开发语言·笔记·后端·学习
hero.fei15 小时前
kaptcha 验证码生成工具在springboot中集成
java·spring boot·后端
w***765516 小时前
存储技术全景:从基础原理到未来趋势
spring boot·后端·mybatis
J_liaty16 小时前
基于ip2region.xdb数据库从IP获取到属地解析全攻略
java·网络·后端
且去填词17 小时前
深入理解 GMP 模型:Go 高并发的基石
开发语言·后端·学习·算法·面试·golang·go
FAFU_kyp18 小时前
Rust 模式匹配:match 与 if let 详解
开发语言·后端·rust
爬山算法19 小时前
Hibernate(46) Hibernate的配置文件如何加载?
java·后端·hibernate