在windows下.NET CORE 与Consul简单使用

1)下载

https://www.consul.io/

2)设置环境变量

拷贝.exe对应的文件路径 放到环境变量path中

3)cmd中启动服务

consul agent -dev 

4)打开vs

5)新建web api项目

6)在Startup.cs下修改Configure函数如下

   public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseMvc();
            String ip = Configuration["ip"];//部署到不同服务器的时候不能写成127.0.0.1或者0.0.0.0,因为这是让服务消费者调用的地址
            int port = int.Parse(Configuration["port"]);//获取服务端口
            var client = new ConsulClient(ConfigurationOverview); //回调获取
            var result = client.Agent.ServiceRegister(new AgentServiceRegistration()
            {
                ID = "ServerNameFirst" + Guid.NewGuid(),//服务编号保证不重复
                Name = "ServerFirst",//服务的名称
                Address = ip,//服务ip地址
                Port = port,//服务端口
                Check = new AgentServiceCheck //健康检查
                {
                    DeregisterCriticalServiceAfter = TimeSpan.FromSeconds(5),//服务启动多久后反注册
                    Interval = TimeSpan.FromSeconds(10),//健康检查时间间隔,或者称为心跳间隔(定时检查服务是否健康)
                    HTTP = $"http://{ip}:{port}/api/Health",//健康检查地址
                    Timeout = TimeSpan.FromSeconds(5)//服务的注册时间
                }
            });
        }
 /// <summary>
        /// 获取Consul的实例
        /// </summary>
        /// <param name="obj"></param>
        private static void ConfigurationOverview(ConsulClientConfiguration obj)
        {
            //consul的地址
            obj.Address = new Uri("http://127.0.0.1:8500");
            //数据中心命名
            obj.Datacenter = "dc1";
        }

7)设置健康检查控制器HealthController.cs

    [Route("api/[controller]")]
    public class HealthController : Controller
    {
        [HttpGet]
        public IActionResult Get() => Ok("ok");
    }

8)生成项目

9)打开项目对应文件夹 ->bin->Debug->netcoreapp2.0   路径上输入cmd 直接进入对应目录并打开cmd

10)运行命令   dotnet PeerApi.dll --ip localhost --port 14446      解释:PeerApi.dll替换成你的dll    localhost代替ip地址  注意:如果未放在iis上 输入localhost代替127.0.0.1 其他ip地址不变  14446 是端口号 替换你的端口

11)打开 http://localhost:8500/ui/dc1/services  【consul自带的监控页面】  可以查看到具体注册的服务

12)服务发现 

稍后

猜你喜欢

转载自www.cnblogs.com/songjl/p/9242784.html