欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Ocelot 新手上路

程序员文章站 2022-03-28 12:25:14
新手上路,老司机请多多包含!Ocelot 在博园里文章特别多,但是按照其中一篇文章教程,如果经验很少或者小白,是没法将程序跑向博主的结果. 因此总结下 参考多篇文章,终于达到预期效果。 Ocelot 目标是使用.NET运行微服务/面向服务架构,我们需要一个统一的入口进入我们的服务,提供监控、鉴权、负 ......

 

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

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

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

 Ocelot开源地址:

 

 Ocelot   新手上路

 

分别创建三个API

1.ApiGateway

2.WebApiA

3.WebApiB

Ocelot   新手上路

 

 

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

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

Ocelot   新手上路

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

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

Ocelot   新手上路

 

修改两个地方就好

 Ocelot   新手上路

 

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

 Ocelot   新手上路

 

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

Ocelot   新手上路

大家会发现  为什么

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

那是因为我们配置

Ocelot   新手上路

 

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

http://localhost:5000/webapib/values

Ocelot   新手上路

http://localhost:5000/webapia/values

Ocelot   新手上路

 

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