tnblog
首页
视频
资源
登录

consul http api与Consul-Template

6707人阅读 2020/6/7 14:37 总访问:437416 评论:1 收藏:0 手机
分类: 云服务

consul的主要接口是RESTful HTTP API,该API可以用来增删查改nodes、services、checks、configguration。所有的endpoints主要分为以下类别:

  • kv - Key/Value存储
  • agent - Agent控制
  • catalog - 管理nodes和services
  • health - 管理健康监测
  • session - Session操作
  • acl - ACL创建和管理
  • event - 用户Events
  • status - Consul系统状态

consul http api

agent

agent endpoints用来和本地agent进行交互,一般用来服务注册和检查注册,支持以下接口

  1. /v1/agent/checks : 返回本地agent注册的所有检查(包括配置文件和HTTP接口)
  2. /v1/agent/services : 返回本地agent注册的所有 服务
  3. /v1/agent/members : 返回agent在集群的gossip pool中看到的成员
  4. /v1/agent/self : 返回本地agent的配置和成员信息
  5. /v1/agent/join/<address> : 触发本地agent加入node
  6. /v1/agent/force-leave/<node>>: 强制删除node
  7. /v1/agent/check/register : 在本地agent增加一个检查项,使用PUT方法传输一个json格式的数据
  8. /v1/agent/check/deregister/<checkID> : 注销一个本地agent的检查项
  9. /v1/agent/check/pass/<checkID> : 设置一个本地检查项的状态为passing
  10. /v1/agent/check/warn/<checkID> : 设置一个本地检查项的状态为warning
  11. /v1/agent/check/fail/<checkID> : 设置一个本地检查项的状态为critical
  12. /v1/agent/service/register : 在本地agent增加一个新的服务项,使用PUT方法传输一个json格式的数据
  13. /v1/agent/service/deregister/<serviceID> : 注销一个本地agent的服务项

catalog

catalog endpoints用来注册/注销nodes、services、checks

  1. /v1/catalog/register : Registers a new node, service, or check
  2. /v1/catalog/deregister : Deregisters a node, service, or check
  3. /v1/catalog/datacenters : Lists known datacenters
  4. /v1/catalog/nodes : Lists nodes in a given DC
  5. /v1/catalog/services : Lists services in a given DC
  6. /v1/catalog/service/<service> : Lists the nodes in a given service
  7. /v1/catalog/node/<node> : Lists the services provided by a node

health

health endpoints用来查询健康状况相关信息,该功能从catalog中单独分离出来

  1. /v1/healt/node/<node>: 返回node所定义的检查,可用参数?dc=
  2. /v1/health/checks/<service>: 返回和服务相关联的检查,可用参数?dc=
  3. /v1/health/service/<service>: 返回给定datacenter中给定nodeservice
  4. /v1/health/state/<state>: 返回给定datacenter中指定状态的服务,state可以是"any", "unknown", "passing", "warning", or "critical",可用参数?dc=

session

session endpoints用来create、update、destory、query sessions

  1. /v1/session/create: Creates a new session
  2. /v1/session/destroy/<session>: Destroys a given session
  3. /v1/session/info/<session>: Queries a given session
  4. /v1/session/node/<node>: Lists sessions belonging to a node
  5. /v1/session/list: Lists all the active sessions

acl

acl endpoints用来create、update、destory、query acl

  1. /v1/acl/create: Creates a new token with policy
  2. /v1/acl/update: Update the policy of a token
  3. /v1/acl/destroy/<id>: Destroys a given token
  4. /v1/acl/info/<id>: Queries the policy of a given token
  5. /v1/acl/clone/<id>: Creates a new token by cloning an existing token
  6. /v1/acl/list: Lists all the active tokens

event

event endpoints用来fire新的events、查询已有的events

  1. /v1/event/fire/<name>: 触发一个新的event,用户event需要name和其他可选的参数,使用PUT方法
  2. /v1/event/list: 返回agent知道的events

status

status endpoints用来或者consul 集群的信息

  1. /v1/status/leader : 返回当前集群的Raft leader
  2. /v1/status/peers : 返回当前集群中同事

Consul-Template

在consul-template没出现之前,大家构建服务发现系统,大多采用的是zookeeper、etcd+confd这样类似的系统,之前写过一篇consul+confd的文,讲的是如何动态生成配置文件的,如今consul官方推出了自己的模板系统,就是consul-template,这样的话动态的配置系统可以分化为etcd+confd和consul+consul-template两大阵营。consul是一个和etcd类似但又强于etcd的系统,关于etcd和consul可以翻阅以前的文章,consul-template的定位就和confd差不多一样了,confd的后端可以是etcd或者consul,相信consul搭配consul-template能发挥更大的效果。consul-template提供了一个便捷的方式从consul中获取存储的值,consul-template守护进程会查询consul实例,来更新系统上指定的任何模板,当更新完成后,模板可以选择运行一些任意的命令。

  1. consul template的使用场景:consul template可以查询consul中的服务目录、keykey-values等。这种强大的抽象功能和查询语言模板可以使consul template特别适合动态的创建配置文件。例如:创建apache/nginx proxy balancershaproxy backendsvarnish serversapplication configurations

consul template的特性

  1. quiescenceconsul template内制静止平衡功能,可以智能的发现consul实例中的更改信息。这个功能可以防止频繁的更新模板而引起系统的波动。
  2. dry mode:不确定当前架构的状态?担心模板的变化会破坏子系统?无须担心,因为consul template还有-dry模式。在dry模式,consul template会将结果呈现在STDOUT,所以操作员可以检查输出是否正常,以决定更换模板是否安全
  3. CLI and Config:如果你喜欢在命令行上指定一切,consul template都可以hold住。随着内置HCL的支持,consul template接收一个配置文件,命令行参数,或者两者的混合。通过这种方式你可以继续使用你现在已有的配置管理工具和consul template来配合。
  4. verbose debugging:即使每件事你都做的近乎完美,但是有时候还是会有失败发生。consul template可以提供更详细的debug日志信息。
评价

小见

2020/6/11 16:41:16

加油加油~

分布式服务架构微服务架构概念的区别联系

分布式:分散压力。微服务:分散能力。当下理解分布式:不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题集...

jsController中分割字符串的方法

js: varstr=OpenRule; varstrs=newArray(); strs=str.split(&quot;,&quot;); for(vari=0;i&lt;strs.length;i++){ $(&q...

Service-stack.redis配置连接池读写分离(处理并发相关等)

配置连接池与读写分类 //写节点(主节点) List&lt;string&gt;writes=newList&lt;string&gt;(); writes.Add(&quot;123456a...

CSS相对定位绝对定位

一般相对定位和绝对定位可以配合起来使用 例如实现如下的效果 只需要在外层div设置为相对定位,在内部设置为绝对定位就...

C委托事件

1.什么是委托?  委托在C#里的意义和在现实里差不多,从字面意思理解即可。举个例子:领导委托小张去传递个文件,这就是...

asp.net core2.0 依赖注入 AddTransientAddScoped的区别

asp.net core主要提供了三种依赖注入的方式其中AddTransient与AddSingleton比较好区别AddTransient瞬时模式:每次都获取一...

Vue.js+Layer实现表格数据绑定更新

一:使用Vue.js绑定好数据与更新事件 使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接...

下划线、换行、回车、空格ASCII码值对照表

下划线,ASCII码95换行 , ASCII码10回车 , ASCII码13空格 , ASCII码32ASCII码表:Bin(二进制)Oct(八进制)Dec(十进制)Hex(...

数据读取器指定的"xx"不兼容。某个类型为"xx"的成员在同名的数据读取器中没有对应的列

报错的地方var result= _db.Database.SqlQuery&lt;SMachine&gt;(sql).FirstOrDefault();经过分析,是因为SqlQuery方法查询...

git 下载提交命令

一.先使用git clone下载一个项目 git clone &#39;项目地址&#39; 这里要注意: clone的项目里边会自带git的一些信息,...

微信开发四 接受用户普通消息回复消息

微信接收用户普通消息的文章可以在官方中直接看微信普通消息分类:接受用户文本消息 与 回复文本信息 注意在接收用户普通...

记忆糖的关系【阅读听力】

Link Between Memory and SugarSugar On The BrainIt’s long been understood that there is a connection between memory...

婚姻心脏健康的关系【阅读听力】

Marriage and Heart HealthPlenty of studies have found that being married is generally good for health. One study ze...

iframe自适应高度配合net core使用

去掉iframe边框frameborder=&quot;0&quot;去掉滚动条scrolling=&quot;no&quot;iframe 自适应高度如果内容是固定的,那么就...

net core中使用url编码解码操作

net core中暂时还没有以前asp.net与mvc中的server对象。获取url的编码与解码操作不能使用以前的server对象来获取。使用的是...
吃亏决不亏,惜福才有福
排名
12
文章
74
粉丝
4
评论
15
ASP.NET中webform中的几个生命周期函数
修心 : 什么周期除了这些还有什么呢
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术