zoukankan      html  css  js  c++  java
  • 在.net项目中使用Consul

    1、创建.net core web程序并运行

    2、在Consul中注册该服务

      Consul支持两种服务注册的方式,一种是通过Consul的服务注册HTTP API,由服务自身在启动后调用API注册自己,另外一种则是通过在配置文件中定义服务的方式进行注册。Consul文档中建议使用后面一种方式来做服务 配置和服务注册。Consul agent在启动时可以通过-config-dir来指定配置文件所在目录(引用自网络)

    [root@linux5 ~]# consul agent -data-dir=/tmp/consul/ -node=consul5 -dc=dc1 -bind=192.168.56.105 -ui -config-dir=/tmp/consul/

    在Consul启动时会读取-config-dir目录下所有的json文件来加载注册的服务,现在在该目录下创建一个配置文件:jw.json

    {
      "service": {
        "name": "jw",
        "tags": ["jiewus"],
        "address": "192.168.56.1",
        "port": 1234,
        "checks": [
          {
            "http": "http://192.168.56.1:1234/Home/About",
            "interval": "10s"
          }
        ]
      }
    }

    重启Consul之后会发现jw这个服务:

        2017/05/10 13:59:37 [INFO] serf: EventMemberJoin: consul3 192.168.56.103
        2017/05/10 13:59:37 [INFO] serf: EventMemberJoin: consul2 192.168.56.102
        2017/05/10 13:59:37 [INFO] serf: EventMemberJoin: consul1 192.168.56.101
        2017/05/10 13:59:37 [INFO] serf: Re-joined to previously known node: consul1: 192.168.56.101:8301
        2017/05/10 13:59:37 [INFO] consul: adding server consul3 (Addr: tcp/192.168.56.103:8300) (DC: dc1)
        2017/05/10 13:59:37 [INFO] consul: adding server consul2 (Addr: tcp/192.168.56.102:8300) (DC: dc1)
        2017/05/10 13:59:37 [INFO] consul: adding server consul1 (Addr: tcp/192.168.56.101:8300) (DC: dc1)
        2017/05/10 13:59:38 [INFO] agent: Synced service 'jiewusWeb'
        2017/05/10 13:59:41 [INFO] agent: Synced check 'service:jiewusWeb'
    ==> Newer Consul version available: 0.8.2 (currently running: 0.8.1)

     3、使用Consul Api进行服务注册

    private static void ServiceRegister(ConsulClient client)
    {
        var client = new ConsulClient(ConfigurationOverview);
        var result = client.Agent.ServiceRegister(new AgentServiceRegistration()
        {
            Address = "http://192.168.56.1:1234/Home/About",
            ID = "jw",
            Name = "jw",
            Port = 1234,
            Tags = new[] { "jiewus" },
            Check = new AgentServiceCheck()
            {
                HTTP = "http://192.168.56.1:1234/Home/About",
                Interval = new TimeSpan(0, 0, 10),
                DeregisterCriticalServiceAfter = new TimeSpan(0, 1, 0),
            }
        }).Result;
    }
    
    private static void ConfigurationOverview(ConsulClientConfiguration obj)
    {
        obj.Address = new Uri("http://192.168.56.104");
        obj.Datacenter = "dc1";
    }
  • 相关阅读:
    直接使用http post的方式上传文件到SharePoint
    Asp.net mvc + .net ef database first 或 model first 时如何添加验证特性
    论文摘要
    4.6 考试的设计和实现(制定考场规则)
    参考文献
    vb 6.0数据库操作代码例子
    4.9 用户界面的设计和实现(DIV+CSS,可编辑的TreeView用户控件)
    4.2用户登陆和安全验证(利用HttpModule集中处理身份检查)
    4.7 学生在线考试表示层的设计和实现(异步保存答案,考试计时和自动交卷)
    第2章 需求分析
  • 原文地址:https://www.cnblogs.com/learn-dotnet/p/6835661.html
Copyright © 2011-2022 走看看