##一、使用 brew 安装
1、 确定 brew 是否有 etcd 包:
1 | brew search etcd |
当然肯定有这个包,这样做的好处是养成一个好的习惯,避免盲目使用 brew install balabala
####2、安装
1 | brew install etcd |
####3、运行 etcd
安装完后,会有相关提示,告知我们怎么使用,推荐使用 brew services 来管理这些应用。
运行 brew services list, 可以看到相关应用的状况,很方便。哎,真香!
brew services 常用的操作
1 | # 启动某个应用,这里用 etcd 做演示 |
从执行结果中可以看出:
- etcdserver: name = default, name表示节点名称,默认为default。
- etcdserver: data dir = default.etcd,data-dir保存日志和快照的目录,默认为当前工作目录“./default.etcd/”。
- etcdserver: initial advertise peer URLs = http://localhost:2380,通过http://localhost:2380,和集群中其他节点通信。
- etcdserver: advertise client URLs = http://localhost:2379,通过http://localhost:2379,对外提供HTTP API服务,供客户端交互。如果配置webui,就使用这个地址。
- etcdserver: heartbeat = 100ms leader发送心跳到followers的间隔时间。
- etcdserver: election = 1000ms 重新投票的超时时间,如果follow在该时间间隔没有收到心跳包,会触发重新投票,默认为1000ms
- 集群和每个节点都会生成一个 uuid。
- 启动的时候,会运行 raft协议,选举出 leader。
好了, etcd 已经启动了,现在验证下,是否正确的启动:
1 | etcdctl endpoint health |
正常情况会输出:
至此,etcd 已经安装完毕。
二、安装etcd webui
在安装etcd webui之前,请确保已安装node工具。使用brew search node命令,可以查看候选安装包;使用brew install node命令,即可安装node工具。
使用git命令下载etcd webui代码,并修改配置文件:
1 | $ git clone https://github.com/henszey/etcd-browser.git |
编辑server.js,修改内容如下:
1 | var etcdHost = process.env.ETCD_HOST || '127.0.0.1'; // || '172.17.42.1'; |
将etcd host修改为本机,将etcd port修改为2379(对于旧版etcd,修改为4001)。
在安装etcd webui之前,务必先启动etcd。
启动etcd webui,执行命令:
1 | node server.js |
执行结果如下所示:
1 | proxy /api requests to etcd on 127.0.0.1:2379etc-browser listening on port 8000 |
在浏览器中,直接访问:http://127.0.0.1:8000/,响应页面如下:
至此,mac下安装etcd成功,配置etcd可视化页面etcd webui成功。
##三、操作
最常见的就是put、get和del命令。
1
2
3
4
5
6
7
8
9
10
11# 放入一个 键值对
~ etcdctl put "name" "zyq1"
OK
#取出一个 键值对
~ etcdctl get "name"
name
zyq1
# 删除一个 键值对
~ etcdctl del "name"
1
# 放入一个 键值对
watch
watch命令用来监测key的变化,会建立长连接,一直监听。
1 | ~ etcdctl watch "name" |
##四、租约
租约是一段时间,可以为etcd的key授予租约。当key被附加到租约时,它的生存时间被绑定到租约的生存时间,一旦租约的TTL到期,租约就过期并且所有附带的key都将被删除。
一个租约可以绑定不止一个key。
1 | # 创建一个20s的租约 |
租约可以被删除
1 | # 创建一个20s的租约 |
租约可以自动续租
1 | # 创建一个20s的租约 |
————————————————
转自链接:
https://learnku.com/articles/42515
https://blog.csdn.net/chinawangfei/article/details/94555155