gateway(网关)介绍
大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。顾名思义,网关(Gateway) 就是一个网络连接到另一个网络的“关口”。也就是网络关卡。
ocelot
基本使用
创建一个项目
Program.cs 中修改以下代码
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).ConfigureAppConfiguration(conf =>
{
conf.AddJsonFile("ocelot.json", false, true);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>().UseUrls("http://127.0.0.1:5000");
});
添加ocelot.json文件,配置如下
提示:如果感觉配置没问题,但还是转发失败,可能是ocelot版本太新了,去官网翻翻最新的
{
"Routes": [
{
"DownstreamPathTemplate": "/api/{par}", // 下游模板
"DownstreamScheme": "http", // 请求方式
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 5002
},
{
"Host": "localhost",
"Port": 5001
}
],
"UpstreamPathTemplate": "/api/{par}", // 上游配置
"UpstreamHttpMethod": [ "Get" ], // 请求类型
"LoadBalancerOptions": {
"Type": "LeastConnection" // 负载配置
}
}
],
"GlobalConfiguration": {
}
}
注入服务
services.AddOcelot();
使用服务
app.UseOcelot().Wait();