Consul的HTTP API和使用方法

       Consul 支持基础结构的服务注册和发现(称为内部服务),也支持外部服务(第三方 SAAS服务以及无法直接运行 Consul 代理的其它环境,例如 redis)。

直接使用 sudo apt-get install consul命令即可安装 consul,你也可以参考导读中笔者的另一篇文章,里面提到了详细的安装方法。
然后我们使用命令启动 consul:
consul agent -dev -client 0.0.0.0 -enable-script-checks -node=web -ui
上面配置指定了允许任何 ip 连接到此 consul,-enable-script-checks 开启 consul 进行简单的基于 ping 的运行状况检查;-node 命名此 consul 节点名称为 web,并开启 UI(-ui)访问(端口8500)。
注:如果是生产环境,则应在 consul 的配置文件中启用 enable_script_checks = true,以持久化配置。
Consul 的 HTTP API
Consul 的主要接口是 Restful HTTP API,这些 API 可以对节点、服务、检查、配置等对象执行基本的 CRUD 操作。
请添加图片描述

 官方 API 文档地址:https://www.consul.io/api-docs/index

在 consul 中,有四类 HTTP API,agent、service、check、connect,后面会介绍这些 API 中常用 API 的操作和参数配置。
Service API
Service 相关的 API 都在 /v1/agent/service 下,这里来列一下这些 API 地址(省略了/v1),凑些字数。

/agent/services:该端点返回在本地代理程序中注册的所有服务;
/agent/service/{service_id}:返回在本地代理上注册的单个服务实例的完整服务定义;
/agent/health/service/name/{service_name}/ /agent/health/service/id/{service_id}:通过名称或id检索本地代理上的聚合服务状态;
/agent/service/register:注册服务;
/agent/service/deregister/{service_id} :注销服务;

/agent/service/maintenance/{service_id}:该端点将给定的服务置于“维护模式”,在维护模式下,该服务将被标记为不可用,并且不会出现在DNS或API查询中;
通过这些 API,可以注册服务以及注销服务,下面介绍一下一些只要的 API 的使用方法。
简单地注册服务
介绍通过 HTTP API 方式,简单注册一个服务并配置健康检查,接下来我们将使用 HTTP API 原生请求的方式,一步步了解 consul 中如何注册服务,并了解一些参数的使用,这里尽量做到与编程语言无关。
这是官方文档给出的一个注册服务的配置示例:

{
  "id": "web1",
  "name": "web",
  "port": 80,
  "check": {
    "name": "ping check",
    "args": ["ping", "-c1", "learn.hashicorp.com"],
    "interval": "30s",
    "status": "passing"
  }
}

请添加图片描述
我们先来了解一下这个配置的字段。
id 为这个服务的唯一标记,而 name 表示此服务的逻辑名称; check 是健康检查的配置,后面会单独介绍。
通过 HTTP API 注册服务,请求的信息如下(curl命令):

curl --location -g --request PUT 'http://{{consul}}:8500/v1/agent/service/register' \
--data-raw '{
  "id": "web1",
  "name": "web",
  "port": 80,
  "check": {
    "name": "ping check",
    "args": ["ping", "-c1", "learn.hashicorp.com"],
    "interval": "30s",
    "status": "passing"
  }
}
'

如果要查询相应的服务是否已经注册,则可使用 /v1/catalog/service/{name} 查询。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值