Consul API文档

  created  by  鱼鱼 {{tag}}
创建于 2019年11月29日 17:24:23 最后修改于 2019年12月01日 22:20:15
评论区
评论
{{comment.creator}}
{{comment.createTime}} {{comment.index}}楼
评论

Consul API文档

Consul API文档

        这是一个记录Consul 常用API的文档,因为Consul的跨语言性,所以http API在Consul中尤为重要,此文档基于Consul版本1.6.0的v1 API,有其他的变化请参阅Consul官方API文档

tips  

    Consul API采用经典的rest图谱Consul API版本只有一个版本,所以所有的前缀都为 /v1/,返回值以Json格式传输,可以添加pretty参数格式化Json,以本地部署为例,整体的baseUrl为127.0.0.1:8500/v1/ 。



agent

GET   /agent/members                     获取agent成员信息

    获取代理成员列表和基本信息,类似于指令'consul members'


GET    /agent/self                       获取本代理agent详细配置信息
PUT   /agent/reload                      重载agent配置
GET    /agent/self                       以流的形式查看日志,直到关闭链接
GET   /agent/metrics                     查看agent指标


开启维护模式

PUT   /agent/maintenance                 开启维护模式
  URL-param        enable                   必需值,enable=true为开启/反之关闭
                   reason                   记录维护模式开启的原因

      开启维护模式后,该代理节点将会被标注为不可用,可以用于上线前临时屏蔽node的服务。


相对应的,service中也有维护模式:

PUT   /agent/service/maintenance/{instanceid}      开启service的维护模式
  URL-param        enable                             必需值,enable=true为开启/反之关闭
                   reason                             记录维护模式开启的原因
  URL-variable     instanceid                         配置的当前ip的instanceId

节点变化

PUT   /agent/join/{ip}                    加入指定ip的agent
   URL-variable    ip                        待加入节点的ip

          同'consul join'


PUT   /agent/leave                        关闭agent
PUT   /agent/forceleave                   强制关闭agent

          leave主要用于正常关闭agent,forceleave主要用于无用agent的信息移除,即node服务已经处于failed状态并且不被需要。


check

    check代表服务的健康检查,是服务的子集,单纯的健康检查没有什么意义,但可以注册多种健康检查并应用于同一个服务中

GET   /agent/checks                         获取所有check信息

    输出服务列表和其对应的检查信息


PUT   /agent/check/register                     注册一个服务检查

    详细见check-注册服务检查


PUT   /agent/check/deregister/{checkid}          注销一个服务检查


check-注册服务检查

PUT   /agent/service/register                注册服务

    requsetBody为json格式,参数如下:

参数 默认值/必需 参数阐释
name 必需 服务检查名
id "" 服务检查id,默认与name保持一致

interval

必需 服务检查时间间隔
http http检查则必需 指定服务检查的http地址,如使用此方式则为必需
method "GET" 指定服务检查的http请求方法
header map 指定服务检查的http请求头
timeout 10s 服务检查请求超时时间
serviceId
指定关联的服务id


service

    这个API模块相对是比较重要的模块

GET   /agent/services                      获取服务列表
GET   /agent/service/{instanceId}          获取单个服务的详细信息
GET   /agent/health/service/name/{serviceName}     获取服务健康状态
    URL-param        format                           如为text,则只返回代表服务健康的String,例如passing
GET   /agent/service/{instanceId}          获取单个服务的详细信息
PUT   /agent/service/register                注册服务

        注册一个服务,java中结合项目自动注册即是调用此接口,详细信息写在service-注册服务


GET   /agent/service/deregister/{instanceId}          注销服务


service-注册服务

PUT   /agent/service/register                注册服务

    requsetBody为json格式,参数如下:

参数 默认值/必需 参数阐释
name 必需 服务名
id "" 服务id,默认与name保持一致

tags

[] 标签集合
address "" 注册的ip地址,将被用于健康检查
port 0 服务端口
check object{check} 指定服务的健康检查
weights 1 指定服务的权重

    检查部分请参考check-注册服务检查



catalog

        通过catalogAPI能直接获取有关的endpoint信息,这其实是consul的k-v带来的功能,因为服务信息均存储在kv中,所以此API的功能其实与其他API会有重叠的部分





Consul API文档2019-12-01鱼鱼

{{commentTitle}}

评论   ctrl+Enter 发送评论