在.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";
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM