架构师_程序员

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 116|回复: 2

[.NET Core] Ocelot 系列(一)ASP.NET Core 网关实战

[复制链接]
发表于 2020-6-28 18:50:12 | 显示全部楼层
Ocelot是一个用.NET Core实现并且开源的API网关,它功能强大,包括了:路由、请求聚合、服务发现、认证、鉴权、限流熔断、并内置了负载均衡器与Service Fabric、Butterfly Tracing集成。这些功能只都只需要简单的配置即可完成,下面我们会对这些功能的配置一一进行说明。

当然,Java项目也有网关,Spring Cloud Gateway 是Spring Cloud 新推出的网关框架,之前是Netflix Zuul。

【实战】CentOS 7 部署Kong API网关
https://www.itsvse.com/thread-5682-1-1.html

首先,新建一个 ASP.NET Core 3.1 的空项目,名称:dotnet-gateway-demo

nuget 安装 ocelot,命令如下:


新建两个 asp.net core 3.1 api 项目,名称分别是“web-api-demo1”、“web-api-demo2”。解决方案结构如下图:

QQ截图20200628180650.jpg

修改“web-api-demo1”、“web-api-demo2”项目 WeatherForecastController 控制器的 Get 方法,代码如下:


demo1 链接:http://localhost:7853/weatherforecast
demo2 链接:http://localhost:7863/weatherforecast

QQ截图20200628182257.jpg

在 dotnet-gateway-demo 项目根目录下,新建配置文件"ocelot.json",如下:

其中 BaseUrl 地址填写当前项目的启动URL,要根据自己实际情况填写

  • DownstreamPathTemplate:下游服务相对路径
  • DownstreamScheme:下游服务http schema
  • DownstreamHostAndPorts:下游服务的地址,如果使用LoadBalancer的话这里可以填多项
  • UpstreamPathTemplate: 上游也就是用户输入的请求Url模板
  • UpstreamHttpMethod: 上游请求http方法,可使用数组


在 Program.cs 的 CreateHostBuilder 中加入

编辑 Startup.cs 文件,代码如下:

其主要代码为:

设置启动项目,同时启动3个web项目,如下图:

QQ截图20200628184022.jpg

设置完成后,启动,根据我们的配置规则,尝试访问:http://localhost:7639/demo1http://localhost:7639/demo2 如下图:

QQ截图20200628184515.jpg
我们在ocelot.json文件增加如下配置,试着反向代理本站,配置如下:

尝试访问:http://localhost:7639/itsvse

QQ截图20200628185506.jpg

源码下载:

游客,如果您要查看本帖隐藏内容请回复


参考文档:https://ocelot.readthedocs.io/en/latest/

(完)






上一篇:VS 2019(Visual Studio)代码清理
下一篇:【前端必备】开发者调试面板
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-6-28 21:23:39 | 显示全部楼层
文章不错。。。。
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
发表于 2020-6-29 09:22:46 | 显示全部楼层
mark mark
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|Archiver|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2020-7-8 11:48

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表