代码改变世界

Consul服务发现与注册

2019-09-22 11:30  NONONONONOA  阅读(261)  评论(0编辑  收藏  举报

consul 启动

dos命令 

consul路径\consul agent -dev

服务注册 

dotnet  项目文件的bin目录dll文件 --urls="http://*:5726" --ip="127.0.0.1" --port=5726  

urls发布的地址端口

ip控制台接收的参数

port控制台接收的参数

consul控制台固定端口 http://localhost:8500/

注册服务代码如下:

  string ip = configuration["ip"] ?? "Localhost";
            int port = string.IsNullOrWhiteSpace(configuration["port"]) ? 44344 : int.Parse(configuration["port"]);
            IConsulClient client = new ConsulClient(obj =>
            {
                obj.Address = new Uri("http://127.0.0.1:8500");//注册地址
                obj.Datacenter = "dc1";//注册内容名称
            });
            Task<WriteResult> result = client.Agent.ServiceRegister(new AgentServiceRegistration()
            {
                ID = "apiserviceTest_" + Guid.NewGuid(),//服务编号,不能重复
                Name = "apiserviceTest",//服务的名字--将来调用时用的就是这个
                Address = ip,
                Port = port,
                Tags = new string[] { },//可以用来设置权重
                Check = new AgentServiceCheck()
                {
                    DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务停止多久后反注册
                    Interval = TimeSpan.FromSeconds(10),//健康检查时间间隔,或者称为心跳间隔
                    HTTP = $"http://{ip}:{port}/api/Value",//健康检查地址,
                    Timeout = TimeSpan.FromSeconds(5)
                }
            });

注册启动接受参数 如接受ip port等

public static void Main(string[] args)
        {
            ///允许控制台命令
            var config = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddCommandLine(args)
                .Build();
            CreateHostBuilder(args)
                .Build()
                .Run();
        }