官网关于这部分的介绍:https://learn.hashicorp.com/consul/getting-started/kv
consul的kv功能可以用来做动态配置,kv的增加修改删除查询除了可以通过consul客户端,还可以通过http api和consul的ui,因此不管是集成到程序里,还是在管理界面查看/配置都很方便。
consul客户端
通过consul客户端使用kv功能我不知道有什么实际用途,但是用来初次体验consul的kv还是很方便的,可以通过简单的命令实现kv的增删改查。
首先,consul agent是默认支持kv功能的,不需要特殊配置,只要consul agent运行着,kv功能就可以使用。
新增数据/修改数据
这两个命令是一样的
consul kv put key value
注意:key是可以带path的,像下面这样
带path一方面可以使你的key更加有条理,看着更方便,含义更清晰,另一方面在查询的时候,可以直接查询某个path下的全部配置。
另外可以附带-flags参数,用来为value添加metadata,就是存一些属性信息,这样用起来比普通的kv更加方便。
查询数据
查询单个key命令如下
consul kv get key
例如:
查询指定路径下所有的key
consul kv get -recurse path
path可以不写,不写的话就是查询所有的key
新增/修改数据时可以增加metadata,这个信息可以通过加上-detailed选项获取
删除数据
删除数据命令如下
consul kv delete key
例如:
Http API
使用之前需要注意一点,启动consul agent的时候,需要加上-client 0.0.0.0参数,这个的意思就是允许任何ip的机器连接consul,如果不加这个参数,consul默认只有本机可以访问。
查询数据
使用http get,url如下,ip为运行consul agent的机器ip,port默认为8500,可以在启动consul agent的时候通过-http-port选项指定为其他端口,key注意如果有path的话需要带上。
http://ip:port/v1/kv/key
例如:
注意:value是经过base64编码的,程序里使用http api的话需要对结果中的value进行解码。
新增/修改数据
使用http put,url如下,body中携带value
http://ip:port/v1/kv/key
例如:
如果需要设置flags,加在query参数中,例如:
删除数据
使用http delete,url如下
http://ip:port/v1/kv/key
例如:
consul UI
通过consul ui,可以方便的操作kv数据,同样需要注意,启动consul agent的时候,加上-client 0.0.0.0参数,这样才能实现consul跑在服务器上,而通过本机即可访问consul ui。
操作很方便,就不赘述了。