用法
查看版本:
etcdctl version
获取集群成员列表:
etcdctl member list
角色权限配置:
- 创建
root
角色/用户并开启权限认证:# 创建root角色 etcdctl role add root # 创建root用户 etcdctl user add root # 给root用户赋予root角色 etcdctl user grant-role root root # 开启权限认证 etcdctl auth enable
- 角色相关操作:
- 添加角色:
etcdctl role add testRole --user root:123456
- 给角色赋予对
key
的管理权限(read/write/readwrite):# 对单个key授权 etcdctl role grant-permission testRole read /config/a.conf --user root:123456 # 以前缀授权 etcdctl role grant-permission testRole read /config/ --prefix=true --user root:123456
- 列出所有的角色:
etcdctl role list --user root:123456
- 获取一个角色的详细信息:
etcdctl role get testRole --user root:123456
- 收回角色对
key
的管理权限:etcdctl role revoke-permission testRole /config/a.conf --user root:123456
- 删除角色:
etcdctl role delete testRole --user root:123456
- 添加角色:
- 用户相关操作:
- 添加用户:
etcdctl user add testUser --user root:123456
- 给用户赋予角色:
etcdctl user grant-role testUser testRole --user root:123456
- 获取用户的详细信息:
etcdctl user get testUser --user root:123456
- 列出所有的用户:
etcdctl user list --user root:123456
- 修改用户密码:
etcdctl user passwd testUser --user root:123456
- 删除用户的角色:
etcdctl user revoke-role testUser testRole --user root:123456
- 删除用户:
etcdctl user delete testUser --user root:123456
- 添加用户:
- 创建
键值对操作:
- 写入值:
etcdctl put /config/a.conf runMod=dev etcdctl --endpoints=http://10.0.0.13:2379 put /config/a.conf runMod=dev # 连接远程节点
- 查询值:
etcdctl get /config/a.conf etcdctl get --prefix /config/ # 以前缀查询 etcdctl get --prefix --limit=2 /config/ # 以前缀查询,限制返回条数 etcdctl get foo foo3 # 查询从foo-foo3的值(不包含foo3) etcdctl get /config/a.conf --print-value-only # 只打印值
- 监听值的变化:
etcdctl watch /config/a.conf etcdctl watch --prefix /config/ # 以前缀监听 # 监听多个值的变化 etcdctl watch -i watch /config/a.conf watch /config/b.conf
- 删除值:
etcdctl del /config/a.conf etcdctl del --prefix /config/ # 以前缀删除
- 定义过期时间为10秒的租约:
etcdctl lease grant 10
- 使用租约:
etcdctl put /config/a.conf runMod=dev --lease=租约id
- 写入值:
使用场景
服务注册/发现:
- 实现原理:
- 存值方式:
/服务名/ip地址:端口号
- 服务注册(服务器):
PUT
+定时续租(KeepAliveOnce)
- 服务发现(网关):
GET
(以前缀获取)+WATCH
(监听前缀)–”PUT事件”或”DELETE(租期过期)事件”,将存活的服务器的ip地址及端口保存到内存或 redis 中 - 负载均衡(网关):从内存或 redis 中选取一个可用的服务器信息并返回
- 连接(客户端):首先请求网关,获取可用的服务器信息(1个),然后连接服务器
- 说明:
网关
和客户端
可以是同一个进程,也可以分开(即多个客户端请求一个网关)
- 存值方式:
- 实现原理:
配置中心:
实现原理:PUT
+WATCH
(监听指定key)分布式锁:
实现原理:事务
文档更新时间: 2024-04-20 10:57 作者:lee