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

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

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

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

  • 基本服务格式:

     {
    "service":{
    "id": "myservice",
    "name": "myservice",
    "address": "servicehost",
    "port": serviceport,
    "tags": ["tag"],
    "checks": [
    {
    "http": "http://host.port/health",
    "interval": "5s"
    }
    ]
    }
    }
  • 健康检查(checks):
    script check:consul主动去检查服务的健康状况

     {
    "check": {
    "id": "scheck",
    "name": "scheck",
    "script": "/*.py", //必须
    "interval": "10s", //必须
    "timeout": "1s"
    }
    }

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

     {
    "check": {
    "id": "scheck",
    "name": "scheck",
    "notes": "scheck",
    "ttl": "30s"
    }
    }

    http check:

     {
    "check": {
    "id": "scheck",
    "name": "scheck",
    "http": "http://host:port/health",
    "interval": "10s",
    "timeout": "1s"
    }
    }

    tcp check:

     {
    "check": {
    "id": "scheck",
    "name": "scheck",
    "tcp": "host:22",
    "interval": "10s",
    "timeout": "1s"
    }
    }
  • 服务注册:

    • 配置文件静态注册:/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:

     <dependency>
    <groupId>com.orbitz.consul</groupId>
    <artifactId>consul-client</artifactId>
    <version>xxx</version>
    </dependency>
     <dependency>
    <groupId>com.ecwid.consul</groupId>
    <artifactId>consul-api</artifactId>
    <version>xxx</version>
    </dependency>

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

Consul 服务发现和配置的更多相关文章

  1. consul服务发现和配置共享的软件,

    Consul 是什么 consul是一个支持多数据中心分布式高可用服务发现和配置共享的服务软件,由HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2. ...

  2. Consul 服务发现与配置

    Consule 是什么 Consul包含多个组件,但是作为一个整体,为你的基础设施提供服务发现和服务配置的工具.他提供以下关键特性: 服务发现 Consul 的客户端可用提供一个服务,比如 api 或 ...

  3. Redola.Rpc 集成 Consul 服务发现

    Redola.Rpc 解决了什么问题? Redola.Rpc 是一个使用 C# 开发的 RPC 框架,代码开源在 GitHub 上.目前版本仅支持 .NET Framework 4.6 以上版本,未来 ...

  4. 微服务(入门三):netcore ocelot api网关结合consul服务发现

    简介 api网关是提供给外部调用的统一入口,类似于dns,所有的请求统一先到api网关,由api网关进行指定内网链接. ocelot是基于netcore开发的开源API网关项目,功能强大,使用方便,它 ...

  5. .NET Core微服务实施之Consul服务发现与治理

    .NET Core微服务实施之Consul服务发现与治理   Consul官网:https://www.consul.io Consul下载地址:https://www.consul.io/downl ...

  6. .NetCore Cap 注册 Consul 服务发现

    注册服务发现 需要使用Cap中的UseDiscovery方法 具体用法如下 var capConsulConfig = Configuration.GetSection("CapConsul ...

  7. 基于Docker的Consul服务发现集群搭建

    在去年的.NET Core微服务系列文章中,初步学习了一下Consul服务发现,总结了两篇文章.本次基于Docker部署的方式,以一个Demo示例来搭建一个Consul的示例集群,最后给出一个HA的架 ...

  8. 扩展gRPC支持consul服务发现和Polly策略

    gRPC由于需要用工具生成代码实现,可开发性不是很高,在扩展这方面不是很友好 最近研究了下,进行了扩展,不需要额外的工具生成,直接使用默认Grpc.Tools生成的代理类即可 相关源码在文章底部 客户 ...

  9. 学习搭建 Consul 服务发现与服务网格-有丰富的示例和图片

    目录 第一部分:Consul 基础 1,Consul 介绍 2,安装 Consul Ubuntu/Debian 系统 Centos/RHEL 系统 检查安装 3,运行 Consul Agent 启动 ...

随机推荐

  1. Quartz中的时间表达式介绍和常用表达式

    Quartz.NET是一个开源的作业调度框架,是 OpenSymphony 的 Quartz API 的.NET移植,它用C#写成,可用于winform和asp.net应用中.它提供了巨大的灵活性而不 ...

  2. SSH实例(6)

    在WebContent文件夹下新建query.jsp和save.jsp文件. query.jsp: <%@ page language="java" import=" ...

  3. POJ 3276 Face The Right Way 反转

    大致题意:有n头牛,有些牛朝正面,有些牛朝背面.现在你能一次性反转k头牛(区间[i,i+k-1]),求使所有的牛都朝前的最小的反转次数,以及此时最小的k值. 首先,区间反转的顺序对结果没有影响,并且, ...

  4. [moka同学笔记]Yii2 自定义class、自定义全局函数(摘录)

    1.在app\components下新建MyComponent.PHP namespace app\components; use Yii; use yii\base\Component; use y ...

  5. js中对象使用

    简单记录javascript中对象的使用 一.创建对象 //创建一个空对象 var o={}; //创建一个含有两个属性的对象,x.y var o2={x:12,y:'12',name:'JS'}; ...

  6. php 设置mssql编码 解决乱码问题 mssql_connect charset Utf8

    当用mssql存储数据采用 nchar 或 nvarchar  存储时 , 由于nchar 或 nvarcha 不支持 UCS-2 ( 即 SQLServer 不会按照 UTF-8 格式存储) 导致P ...

  7. css知多少(1)——我来问你来答

    1. 引言 各位前端或者伪前端(比如作者本人)的同志们,css对你们来说不是很陌生.比如我,在几年之前上大学的时候,给外面做网站就用css,而且必须用css.这样算下来也得六年多了,有些功能可能轻车熟 ...

  8. ae动态显示属性表————切记DataTable中要先Add(row)之后再往里传值。

    public partial class FrmAttributeTable : Form { private AxMapControl m_MapCtl; public FrmAttributeTa ...

  9. Autodesk 360 Viewer 已经发布到Autodesk 360平台

    我们之前已经在小范围内透露过,Autodesk 将发布一款完全无需插件的三维模型浏览器 Autodesk 360 Viewer,比如我们的Meetup线下小聚会,或者黑客马拉松(hackathon)的 ...

  10. Day Tips:Search CPU 100%

    Powershell:Set-SPEnterpriseSearchService -PerformanceLevel Reduced             Specifies the relativ ...