AspNetCore 多环境配置 以及注册 消费Consul
2018-06-27 17:39
766 查看
本文主要记录 CoreApi 的多环境配置以及如何消费在consul中注册的Api 服务
1、创建三个CoreApi
我们在项目中创建三个站点分别为 UserServices “用户服务”,OrderServices “订单服务” 以及 StorehouseServices “库房服务”、打开VS2017 创建Core Web 应用程序
#region //查看所有consul中被注册的服务 //查看所有consul中被注册的服务 using (var consulClient = new ConsulClient(c => { c.Address = new Uri("http://127.0.0.1:8500"); c.Datacenter = "dc1"; })) { var services = consulClient.Agent.Services().Result.Response; //var ss = services.Values.Where(s => s.Service.Equals("UserServices", StringComparison.OrdinalIgnoreCase));//忽略大小写 foreach (var service in services.Values) { Console.WriteLine($"id={service.ID},name={service.Service},ip={service.Address},port={service.Port}"); } } #endregion #region 客户端负载均衡 //客户端负载均衡 using (var consulClient = new ConsulClient(c => c.Address = new Uri("http://127.0.0.1:8500"))) { var services = consulClient.Agent.Services().Result.Response.Values .Where(s => s.Service.Equals("UserServices", StringComparison.OrdinalIgnoreCase)); if (!services.Any()) { Console.WriteLine("找不到服务的实例"); } else { // services.ElementAt(1);//如果环境中有多台服务器注册服务时我们可以使用随机数的方式,使用下标进行随机抽取一台服务进行使用 //集群中也可以轮训,当服务器性能差不多的时候可以轮着来 var service = services.ElementAt(Environment.TickCount % services.Count()); Console.WriteLine($"{service.Address}:{service.Port}"); } } #endregion #region 调用服务方法 UserServices/api/Values using (var consulClient = new ConsulClient(c => { c.Address = new Uri("http://127.0.0.1:8500"); c.Datacenter = "dc1"; })) { var AllServicesInfor = consulClient.Agent.Services().Result.Response; //获取第一个实例 把UserServices转换为在Consul中注册的路径 然后进行访问 var UserServices = AllServicesInfor.Values.Where(s => s.Service.Equals("UserServices", StringComparison.OrdinalIgnoreCase)).First();//忽略大小写 using (System.Net.Http.HttpClient http = new HttpClient()) { using (var HttpContent = new StringContent("", System.Text.Encoding.UTF8, "application/json")) { var ss = http.PostAsync($"http://{UserServices.Address}:{UserServices.Port}/api/Values", HttpContent); string sss = ss.Result.RequestMessage.ToString(); } } } #endregion
View Code
项目链接
链接:https://pan.baidu.com/s/1V0YcX1kFJg752icNICTuQQ 密码:1s47
有不足之处 希望大家指出相互学习,
本文[b]原创:转载请注明出处 谢谢![/b]
相关文章推荐
- ASP.NET MVC 环境下CKeditor 的配置以及用jQuery进行数据存取操作
- Linux( CentOS 6.6 ) 环境下使用 MONO + Jexus 配置 ASP.NET 以及MVC运行环境
- ASP.NET MVC 环境下CKeditor 的配置以及用jQuery进行数据存取操作
- tomcat7w.exe启动失败,未注册成服务,以及配置Tomcat系统环境变量
- ASP.NET MVC 环境下CKeditor 的配置以及用jQuery进行数据存取操作
- 登录注册模块1(以及环境配置)每个文件夹的作用(7)
- ASP.NET MVC 环境下CKeditor 的配置以及用jQuery进行数据存取操作
- Java配置环境以及Editplus运行程序方法及问题
- 配置asp.net开发环境
- Yale cas服务器端/客户端环境配置以及其在tomcat服务器下SSL安全协议得部署之完全实现篇
- 64位win7下,CodeBlock13.12配置GTK3.x环境以及第一个DEMO的执行
- Spring MVC环境搭建、一键式配置方法(注解)以及参数传递
- Android 环境的配置 以及 模拟器的使用
- Maven安装以及环境配置(Windows)
- Django之环境搭建以及初始配置
- 如何在window下配置Qt以及IDE开发环境
- visual studio 2012打开提示 未能将网站×××配置为使用 ASP.NET 4.5 和 尚未在Web服务器上注册,您需要手动将Web服务器配置为使用ASP.NET 4.5,问题解决
- sublime text 3 快捷键大全以及配置编译环境
- 一步一步学习ASP.NET 5 (一)-基本概念和环境配置