zoukankan      html  css  js  c++  java
  • Consul 服务发现和配置

    Service discovery and configuration made easy. Distributed, highly available, and datacenter-aware.

    服务发现和配置,分布式,高可用性,数据中心。

    • 服务注册 - 服务端注册相应的的主机、端口号及其它身份验证信息,协议,版本号,以及运行环境等详细资料。

    • 服务发现 - 客户端应用通过向注册中心查询,获取可用服务列表,相应服务详细信息。

    • 基本服务格式:

       1 {
       2   "service":{
       3     "id": "myservice",
       4     "name": "myservice",
       5     "address": "servicehost",
       6     "port": serviceport,
       7     "tags": ["tag"],
       8     "checks": [
       9         {
      10             "http": "http://host.port/health",
      11             "interval": "5s"
      12         }
      13     ]
      14   }
      15 }
    • 健康检查(checks):
      script check:consul主动去检查服务的健康状况

      1 {
      2   "check": {
      3     "id": "scheck",
      4     "name": "scheck",
      5     "script": "/*.py", //必须
      6     "interval": "10s", //必须
      7     "timeout": "1s"
      8   }
      9 }

      ttl check:服务主动向consul报告自己的健康状况

      1 {
      2   "check": {
      3     "id": "scheck",
      4     "name": "scheck",
      5     "notes": "scheck",
      6     "ttl": "30s"
      7   }
      8 }

      http check:

      1 {
      2   "check": {
      3     "id": "scheck",
      4     "name": "scheck",
      5     "http": "http://host:port/health",
      6     "interval": "10s",
      7     "timeout": "1s"
      8   }
      9 }

      tcp check:

      1 {
      2   "check": {
      3     "id": "scheck",
      4     "name": "scheck",
      5     "tcp": "host:22",
      6     "interval": "10s",
      7     "timeout": "1s"
      8   }
      9 }
    • 服务注册:

      • 配置文件静态注册:/etc/consul.d/myserver.json,

        添加如上服务配置,重启consul,并将配置文件的路径给consul(指定参数:-config-dir /etc/consul.d)

      • HTTP API接口来动态注册:/v1/agent/service/register http put方法注册。

        curl -X PUT -d '{"id": "myserver","name": "myserver","address": "serverhost","port": serverport,"tags": ["tag"],"checks": [{"http": "http://healthhost:port/health","interval": "5s"}]}' http://host:8500/v1/agent/service/register

    • maven dependency:

      1 <dependency>
      2     <groupId>com.orbitz.consul</groupId>
      3     <artifactId>consul-client</artifactId>
      4     <version>xxx</version>
      5 </dependency>
      1 <dependency>
      2     <groupId>com.ecwid.consul</groupId>
      3     <artifactId>consul-api</artifactId>
      4     <version>xxx</version>
      5 </dependency>

    项目地址:https://github.com/windwant/windwant-service/tree/master/consul-service

  • 相关阅读:
    使用promxy实现prometheus 的ha 以及api 聚合
    victoriametrics 快速高效&&可扩展的时序数据库
    statping web 状态监控服务
    prometheus 一些不错的exporter
    fusionauth 通用sso 解决方案学习二 基本试用
    fusionauth 通用sso 解决方案学习一 环境运行
    zeeqs 一个通用的zeebe 数据查询服务
    zeebe 0.23.1 变动说明
    zeebe 0.23.1 发布
    alpine.js 像使用tailwindcss一样编写js
  • 原文地址:https://www.cnblogs.com/niejunlei/p/5981963.html
Copyright © 2011-2022 走看看