Consul简介和kv功能

Consul简介

Consul 是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置。与其它分布式服务注册与发现的方案相比,Consul的方案更“一站式”,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,不再需要依赖其它工具(比如ZooKeeper等) ,使用起来也较为简单。
Consul 使用Go语言编写,因此具有天然可移植性(支持Linux,Windows和Mac OS);安装包仅包含一个可执行文件,方便部署,与Docker等轻量级容器可无缝配合。

Consul特性

  • 服务发现: Consul 的客户端可以注册服务,其他客户端可以使用 Consul 发现给定服务的提供者。使用DNS 或 HTTP,应用程序可以轻松找到它们所依赖的服务。
  • 健康检查: Consul客户端可以提供任意数量的健康检查,可以与给定的服务关联(“web服务器是否返回200 OK”),也可以与本地节点关联(“内存利用率是否低于90%”)。操作人员可以使用此信息监视集群运行状况,服务发现组件也可以使用此信息将通信流量路由到远离不健康主机的地方,支持多种方式,HTTP, TCP、 Docker, Shell脚本定制化监控。
  • KV 存储: 应用程序可以使用Consul的分级 key/value 存储来实现各种目的,包括动态配置、特性标记、协调、leader选举等等。简单的HTTP API使其易于使用。
  • 安全服务通信: Consul可以生成和分发服务的TLS证书,以建立相互的TLS连接。可以使用意图来定义允许哪些服务进行通信。可以很容易地管理服务细分,目的可以实时更改,而不是使用复杂的网络拓扑和静态防火墙规则。
  • 多数据中心: Consul 支持开箱即用的多个数据中心。这意味着 Consul 的用户不必担心构建额外的抽象层以扩展到多个区域。
  • Raft 算法: 使用Raft算法完成一致性,Raft将一致性问题分解成了三个独立的部分:leader选举、日志复制、安全性。
  • 自带web管理界面: 这一点相比于zookeeper注册中心要好一点,zookeeper是没有自带管理界面的。通过管理界面可以清晰的看到注册了多少个服务,以及在管理界面还可以使用服务配置功能。

基本架构

image.png
Consul Cluster(集群)有Server 和Client两种角色。不管是Server还是Client,统称为Agent(代理)。

  • Client是相对无状态的,只负责转发RPC到Server资源开销很少。
  • Server是一个有一组扩展功能的代理,这些功能包括参与Raft选举、维护集群状态、响应RPC查询、与其他数据中心交互WAN Gossip和转发查询给leader或者远程数据中心。

KV存储功能

修改/增加

consul kv put key value
Consul在所有kv操作的时候可以带token,类似于口令,方法如下
consul kv put [-token=xxxx.xxxx.xxx] key value

查询

查询指定key对应的值
consul kv get webserver
查询有哪些keys(仅显示根节点的key)
consul kv get -keys
查询前缀含有webserver的所有根节点有哪些key(前缀匹配)
consul kv get -keys webserver
递归获取含有webserver的所有根节点下的key
consul kv get -recurse webserver
查询webserver根key下包含哪些子key
consul kv get -keys webserver/

删除

consul kv delete key

备份和还原

备份数据
consul snapshot save [-token=xxx] consul.snap
还原数据
consul snapshot restore [-token=xxx] consul.snap

导入和导出

导出配置
consul kv export -http-addr=127.0.0.1:8500 [-token="xxx"] > consul-kv.json
导入配置
consul kv import -http-addr=127.0.0.1:8500 [-token="xxx"] @consul-kv.json

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Consulkv导入功能,可以按照以下步骤进行操作: 1. 首先,删除Consul配置中心的值。可以使用Consul客户端或者通过HTTP API来删除。\[1\] 2. 然后,运行以下命令导入数据:`consul kv import --http-addr=http://127.0.0.1:8500 @consul_kv.json`。这个命令将会从指定的JSON文件中导入键值对数据到Consulkv存储中。\[1\] 3. 如果需要查看导入后的数据,可以使用Consul客户端或者通过Consul的UI界面来查询。Consulkv功能可以用来做动态配置,增加、修改、删除和查询都非常方便。\[2\] 总结起来,要使用Consulkv导入功能,首先删除配置中心的值,然后使用`consul kv import`命令导入数据,最后可以通过Consul客户端或者UI界面来查看导入后的数据。\[1\]\[2\] #### 引用[.reference_title] - *1* *3* [consul配置中心,自动导入数据](https://blog.csdn.net/xianpinjin4752/article/details/124432504)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [consulkv使用](https://blog.csdn.net/u013536232/article/details/104188286)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值