安装及启动
在Mac上,推荐使用brew安装
brew install etcd
可以使用etcd
启动服务,但更推荐使用 brew services
来管理使用brew安装的应用~
# 启动某个应用,这里用 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
![alt](https://i-blog.csdnimg.cn/blog_migrate/8b328ca722f20d4d2b25d96f6de8516b.png)
V3.4版本之后默认是V3接口,不再支持V2:
etcd v3使用gRPC作为其消息传递协议。 etcd项目包括一个基于gRPC的Go客户端和一个命令行实用程序etcdctl,用于通过gRPC与etcd集群进行通信。 对于不支持gRPC的语言,etcd提供了JSON gRPC网关。 该网关提供一个RESTful代理,该代理将HTTP/JSON请求转换为gRPC消息
v2和v3接口差异较大, 如果想继续使用v2, 需要在启动时指定 --enable-v2=true,否则直接请求v2的api会报404
etcd --enable-v2=true
:
![alt](https://i-blog.csdnimg.cn/blog_migrate/ca76cfb16b4a1556f596183dddbbb842.png)
(下面继续使用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"
![alt](https://i-blog.csdnimg.cn/blog_migrate/91c06f8ec0d628beefbf8c999004c1d6.png)
-
创建目录:
curl 127.0.0.1:2379/v2/keys/mulu666 -XPUT -d dir=true
![alt](https://i-blog.csdnimg.cn/blog_migrate/94f540f134cb2ef36a46b5ca78e193ee.png)
-
创建带ttl的键值(单位为秒):
curl 127.0.0.1:2379/v2/keys/key_with_expired_time -XPUT -d value='这是key的值,这个key生命周期是5s' -d ttl=5
![alt](https://i-blog.csdnimg.cn/blog_migrate/07689af6db1e3e1f4060e5b995257b2d.png)
-
创建有序键值:
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="杨玉环"
![alt](https://i-blog.csdnimg.cn/blog_migrate/de99817164b7bf88bceb54105222deb7.png)
-
删除指定的键:
curl 127.0.0.1:2379/v2/keys/ckl -XDELETE
![alt](https://i-blog.csdnimg.cn/blog_migrate/6ffe94a4369d8cb33bf703ff05a92b25.png)
-
列出所有的集群成员:
curl 127.0.0.1:2379/v2/members
-
查看leader:
curl 127.0.0.1:2379/v2/stats/leader
![alt](https://i-blog.csdnimg.cn/blog_migrate/660c191b2adc0aba201f1e36c66a3195.png)
-
查看集群运行状态:
curl 127.0.0.1:2379/v2/stats/store
![alt](https://i-blog.csdnimg.cn/blog_migrate/a0d92c2993a525737e3c7858d6ccbe45.png)
除去restful Api,etcdctl命令行也支持相关操作,如:
-
放入一个 键值对:
etcdctl put "myname" "fliter"
-
取出一个 键值对
etcdctl get "myname"
-
删除一个 键值对
etcdctl del "myname"
![alt](https://i-blog.csdnimg.cn/blog_migrate/eaaf34439bf02383bdeded239f38dd0c.png)
命令行操作和resuful Api操作应该是互通的。但看起来数据居然没有共通,有点奇怪...
不错的GUI
有一些还不错的第三方开源UI,可以界面化查看和操作
比如 etcd-manage
例如,可以在界面新增key,或修改内容等
![alt](https://i-blog.csdnimg.cn/blog_migrate/3aa746cb3f586a9d91dc8c5520d3a917.png)
看起来和etcdctl是通的,神奇的是和restful Api不通...
![alt](https://i-blog.csdnimg.cn/blog_migrate/b6d770dc60d8d794cf85d65ae005b78d.png)
本文由 mdnice 多平台发布