本文将演示从 etcd 集群中获取以特定前缀(如 /config/db)开头的所有键值对。
在分布式系统中,etcd
是一个高可用的键值存储,用于存储和共享配置信息、服务发现、协调等。从 etcd
读取数据可以通过多种方式进行,常见的方式是使用 etcd
提供的 HTTP API 或者通过客户端库来进行操作。
目录
一、使用EtcdCtl工具来读取数据
1.1、设置环境变量(可选)
export ETCDCTL_API=3
export ETCDCTL_ENDPOINTS=http://localhost:2379
1.2、使用etcdctl Get keys by prefix
etcdctl get <key> <value> --prefix
etcdctl get /config/db --prefix
1.2’、格式化获取的结果
D:\data>etcdctl get /config/db-w json --prefix
{"header":{"cluster_id":1090313446326588887,"member_id":2759271418354571410,"revision":4,"raft_term":2},"kvs":[{"key":"L2NvbmZpZy9kYi9ob3N0","create_revision":4,"mod_revision":4,"version":1,"value":"MTkyLjE2OC4xLjEwMA=="}],"count":1}
上面的示例我们把获取到结果以json形式进行输出
1.3、通过etcdctl get -h来查看相关帮助信息
D:\data>etcdctl get -h
NAME:
get - Gets the key or a range of keys
USAGE:
etcdctl get [options] <key> [range_end] [flags]
OPTIONS:
--consistency="l" Linearizable(l) or Serializable(s)
--count-only[=false] Get only the count
--from-key[=false] Get keys that are greater than or equal to the given key using byte compare
-h, --help[=false] help for get
--keys-only[=false] Get only the keys
--limit=0 Maximum number of results
--order="" Order of results; ASCEND or DESCEND (ASCEND by default)
--prefix[=false] Get keys with matching prefix
--print-value-only[=false] Only write values when using the "simple" output format
--rev=0 Specify the kv revision
--sort-by="" Sort target; CREATE, KEY, MODIFY, VALUE, or VERSION
二、使用go 客户端读取数据
2.1、安装 Go 客户端库
2.2、示例代码
func init()