Ocelot 新手上路


 

新手上路,老司机请多多包含!Ocelot 在博园里文章特别多,但是按照其中一篇文章教程,如果经验很少或者小白,是没法将程序跑向博主的结果.

因此总结下     参考多篇文章,终于达到预期效果。

 Ocelot   目标是使用.NET运行微服务/面向服务架构,我们需要一个统一的入口进入我们的服务,提供监控、鉴权、负载均衡等机制,也可以通过编写中间件的形式,来扩展Ocelot的功能。  Ocelot是一堆特定顺序的中间件。

 Ocelot开源地址:https://github.com/TomPallister/Ocelot

 

 

 

分别创建三个API

1.ApiGateway

2.WebApiA

3.WebApiB

 

 

以 APIGateway 项目 Nuget控制台,执行Ocelot安装。

PM>Install-Package Ocelot    按回车等待安装

如果看到这种情况  恭喜你   环境基本就绪  咱们开始走上编码

 

 

1、APIGateway修改Startup

 
 

public class Startup
{

 
 


public Startup(IConfiguration configuration)
{
Configuration = configuration;
}

 
 


public IConfiguration Configuration { get; }

 
 


// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{

 
 

services.AddMvc();
services.AddOcelot(new ConfigurationBuilder()
.AddJsonFile("configuration.json")
.Build());

 
 

}

 
 


// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public async void Configure(IApplicationBuilder app, IHostingEnvironment env)
{

 
 

if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}

 
 

await app.UseOcelot();

 
 

app.UseMvc();

 
 

}

 
 

}

 

添加命名空间

using Ocelot.DependencyInjection;
using Ocelot.Middleware;

 

3.ocelot.json 添加json

配置如下:

{
"ReRoutes": [ { "DownstreamPathTemplate": "/api/values", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 5001 } ], "UpstreamPathTemplate": "/webapia/values", "UpstreamHttpMethod": [ "Get" ] }, { "DownstreamPathTemplate": "/api/values", "DownstreamScheme": "http", "DownstreamHostAndPorts": [ { "Host": "localhost", "Port": 5002 } ], "UpstreamPathTemplate": "/webapib/values", "UpstreamHttpMethod": [ "Get" ] } ] }

 

4.分别修改   launchSettings.json

1.ApiGateway   5000

2.WebApiA        5001

3.WebApiB        5002

 

修改两个地方就好

 

 

 最后设置启动项   鼠标  选中解决方案  右键  选择设置启动项

 

 

配置完成  看看效果F5 跑起来

大家会发现  为什么

http://localhost:5000/api/values  报错了

那是因为我们配置

 

因此这个地方  访问咱们需要换一个链接

http://localhost:5000/webapib/values

http://localhost:5000/webapia/values

 

 看步骤大家应该就能猜到为什么会这样运行,具体原理  可以看博园中大神们的注解


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM