网站的网站搭建,手机做ppt的软件免费,松原公司做网站,网页设计师简历模板为什么这篇的标题叫“Ocelot简易教程#xff08;二#xff09;之快速开始2”呢#xff0c;因为很多朋友跟我说上一篇“ Ocelot简易教程#xff08;二#xff09;之快速开始1”内容太少了#xff0c;只是简单介绍Ocelot的一些简单配置#xff0c;让Ocelot能跑起来#x… 为什么这篇的标题叫“Ocelot简易教程二之快速开始2”呢因为很多朋友跟我说上一篇“ Ocelot简易教程二之快速开始1”内容太少了只是简单介绍Ocelot的一些简单配置让Ocelot能跑起来所以才有了这篇快速开始2.在这篇文章中我会一步一步记录怎么跑起来一个Ocelot项目并简单的介绍一下Ocelot怎么实现接口间的负载均衡此篇文章的代码我会放在我的github上面。后续深入的记录Ocelot的使用的时候也会沿用这次的代码。本文作者依乐祝原文地址https://www.cnblogs.com/yilezhu/p/9638417.html一步一步开始演示项目概述这次的演示项目因为要实现Ocelot的负载均衡的功能因此至少需要三个项目Ocelot网关OrderApi,GoodApi .名字随便取的可能博主认为这样起名字比较顺口没有其他特别的含义。新建上面的三个asp.net core web api项目相信看这篇文章的朋友至少应该懂asp.net core了吧不然你也接触不到Ocelot的。所以这里假设大家都会创建asp.net core web api因为真的没什么技术含量。创建后的项目接口如下图所示给OcelotDemo网关项目添加Ocelot包以及配置文件首先给OcelotDemo添加Nuget包可以右键“管理Nuget”包然后搜索Ocelot添加如下图所示也可以通过命令 Install-Package Ocelot进行安装。方式随你喜欢。然后给OcelotDemo项目新建一个json文件新建的方式就是右键OcelotDemo项目然后选择“添加”-》“新建项”在弹出的窗口里面找到json文件并写好文件的名字即可当然也可以用快捷键 CtrlShiltA如下图所示当然你还需要右键你刚刚设置的ocelot.json文件并设置“复制到输出目录”的属性为“始终复制”如下所示接下来可以按照我写的非常简单的配置进行配置。{ ReRoutes: [{DownstreamPathTemplate: /api/{everything},DownstreamScheme: http,DownstreamHostAndPorts: [{Host: localhost,Port: 1001},{Host: localhost,Port: 1002}],UpstreamPathTemplate: /{everything},UpstreamHttpMethod: [ Get, Post ],LoadBalancerOptions: {Type: RoundRobin}}],GlobalConfiguration: {}
}上面配置有两个节点分别是ReRoutes数组以及GlobalConfiguration。这里简单做一下阐述ReRoutes告诉Ocelot如何处理上游的请求。DownstreamPathTemplate:下游的路由模板即真实处理请求的路径模板DownstreamScheme请求的方式如http,htttpsDownstreamHostAndPorts下游的IP以及端口,可以有多个(如果使用负载均衡)方便实现负载均衡当然你也可以使用服务发现实现下游服务的自动注册与发现这篇文章不会讲解。UpstreamPathTemplate上游请求的模板即用户真实请求的链接UpstreamHttpMethod上游请求的http方法是个数组你可以写多个。LoadBalancerOptions负载均衡选项DownstreamHostAndPorts有多个的时候才能看到效果有三种方式LeastConnection : 将请求发往最空闲的那个服务器RoundRobin 轮流发送NoLoadBalance 不启用负载均衡总是发往第一个请求或者服务发现的那个服务器GlobalConfiguration顾名思义就是全局配置此节点的配置允许覆盖ReRoutes里面的配置你可以在这里进行通用的一些配置信息。OcelotDemo中添加Ocelot支持。首先在OcelotDemo项目的Program.cs中加载上一步我们添加的Ocelot的配置文件如下所示 public static IWebHostBuilder CreateWebHostBuilder(string[] args) WebHost.CreateDefaultBuilder(args).ConfigureAppConfiguration((hostingContext, config) {config.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath).AddJsonFile(appsettings.json, true, true).AddJsonFile($appsettings.{hostingContext.HostingEnvironment.EnvironmentName}.json, true, true).AddJsonFile(Ocelot.json).AddEnvironmentVariables();}).UseUrls(http://localhost:1000).UseStartupStartup();然后在Startup.cs中添加Ocelot服务并启用Ocelot中间件这里你需要在Startup.cs文件中引入下面两个命名空间using Ocelot.DependencyInjection;using Ocelot.Middleware;然后分别在ConfigureServices中注册Ocelot服务以及Configure中启用Ocelot中间件 public void ConfigureServices(IServiceCollection services){services.AddOcelot();//注入Ocelot服务services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);} // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.public void Configure(IApplicationBuilder app, IHostingEnvironment env){ if (env.IsDevelopment()){app.UseDeveloperExceptionPage();}app.UseOcelot().Wait();//使用Ocelot中间件app.UseMvc();}这时候Ocelot的配置基本完成了下面我们验证下Ocelot有没有正常工作以及我们配置的负载均衡有没有起作用吧。结合我们上面的配置可以知道改造的目的就是为了如下的测试我们做出如下假设为了验证上游模板/{everything} 对应下游模板/api/{everything} 我们请求的路径即为http://localhost:1000/Values 并且把GoodApi以及GoodApi响应路径分别设置为http://localhost:1001/api/Values ,http://localhost:1003/api/Values 并得到正确的响应为了验证Ocelot项目起作用我们请求ocelotDemo项目的路径values应该返回GoodApi或者OrderApi项目中values控制器的值而不是返回ocelotDemo中values控制器的值为了验证Ocelot负载均衡起作用我们连续访问ocelotDemo项目的路径values则返回的结果应该是轮流返回GoodApi以及OrderApi的值。下面我们利用 dotnet run命令分别启动三个项目当然你也可以多项目启动。然后访问OcelotDemo项目的Url并访问Values控制器完整路径“http://localhost:1000/Values”,看到OcelotDemo的Urlhttp://localhost:1000GoodApi的Urlhttp://localhost:1001OrderApi的Urlhttp://localhost:1002我们第一次访问http://localhost:1000/Values 得到如下结果测试Ocelot项目以及负载均衡有没有起作用这里首先分别对三个项目的ValuesController控制器做如下改造OcelotDemo项目ValuesController中的Get方法改造如下:明我们的假设1以及假设2都是没问题的。也就是说我们的Ocelot已经在起作用了而且根据上下游路由进行了映射。接下来我们刷新下页面得到如下结果说明我们的假设3即Ocelot的负载均衡也起作用了。当然你可以多刷新几次可以看到返回的结果在GoodApi与Order Api之间来回切换。因为我们的负载均衡策略就是轮询啊源码链接Github地址https://github.com/yilezhu/OcelotDemo最后这篇文章主要是为了让记录如何快速的开始使用Ocelot。关于Ocelot的配置很多都没有描述包括限流以及熔断策略以及多配置文件自动加载功能等等。这个超出了快速开始的范围当然这些高级的用法会在下面的系列文章中会一一记录。本文使用的是Ocelot最新版本为了保持技术上的跟进因此没有使用上篇文章介绍的老版本所以演示都是通过最新的ocelot版本来跟进的总结关于其本篇文章只是记录了如何快速的成功的使用ocelot,并进行了简单的配置配置中又引入了一个负载均衡的策略最后通过代码进行了相关的实现以及测试他的一些配置我会在下面的文章中进行阐述。这里只是对上篇文章“Ocelot简易教程二之快速开始1”的补充感谢大家的阅读相关文章AspNetCore中使用Ocelot之 IdentityServer4Ocelot-基于.NET Core的开源网关实现.NET Core微服务之基于OcelotIdentityServer实现统一验证与授权Swagger如何访问Ocelot中带权限验证的APIOcelot.JwtAuthorize一个基于网关的Jwt验证包.NET Core微服务之基于Ocelot实现API网关服务.NET Core微服务之基于Ocelot实现API网关服务续.NET微服务体系结构中为什么使用Ocelot实现API网关Ocelot简易教程一之Ocelot是什么Ocelot简易教程二之快速开始1原文地址: https://www.cnblogs.com/yilezhu/p/9563188.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com