服务发现系统consul-service

       服务发现的一个重要作用就是提供一个可用的服务列表,为此,agent提供了一个简单的服务定义格式用来声明服务的可用性,还有健康检测的可用性。健康检测被认为是应用层面的服务检测,一个服务发现既可以通过配置文件来定义,也可以在agent运行时通过HTTP API接口来定义。

服务定义的格式类似如下:

{
  "service": {
    "name": "redis",
    "tags": ["master"],
    "port": 8000,
    "check": {
      "script": "/usr/local/bin/check_redis.py",
      "interval": "10s"
    }
  }
}

        一个服务的定义必须包含name变量,id、tags、port、check等变量都是可选择的,如果name变量没有设置,则id变量必须设置,在每个节点上的所有的服务的id都必须是唯一的,所以在name冲突的时候,唯一的id可以用来提供分辨信息。

        tags对于consul来说是一个模糊的列表值,一般用来区别出master和slave节点、不同的版本号、服务的级别等等。port可以使面向服务的体系结构配置变得简单。一个服务可以和一个健康检测关联起来,这是一个很好的功能,可以使web负载均衡器有好的移除failed节点。健康检测是和DNS接口紧密集成的,如果一个健康监测失败了,或者node在系统层面有检测失败,DNS接口将会在任何服务查询时忽略该节点。

        关于check的定义更多的信息在这里,check必须是script或者TTL类型的,如果是script类型,则script和interval变量必须被提供,如果是TTL类型,则ttl变量必须被提供。check的名称默认和service的一样。在配置好服务之后,可以在命令行通过指定-config-file或者-config-dir来指定配置文件的路径,所有的配置文件必须以.json结尾。配置文件修改后,可以给agent发送一个SIGHUP信号来update。当然服务也可以通过HTTP API接口来动态注册。

转载于:https://my.oschina.net/guol/blog/353395

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值