Asp.Net Core + Ocelot 网关搭建:路由简单配置
前言
Ocelot是一个基于中间件的网关实现,功能有很多。从浅入深简单学习并记录一下吧。本篇就是一个简单的路由配置实现。
DEMO 搭建
  首先建立三个项目。Api.User,Api.Article,Api.GateWay.ApiGateWay项目中引入Ocelot Nuget包.添加配置文件Ocelot.json.
{
  "ReRoutes": [
    {
      "DownstreamPathTemplate": "/{all}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 60001
        }
      ],
      "UpstreamPathTemplate": "/user/{all}",
      "UpstreamHttpMethod": ["GET","POST"]
    },
    {
      "DownstreamPathTemplate": "/{all}",
      "DownstreamScheme": "http",
      "DownstreamHostAndPorts": [
        {
          "Host": "localhost",
          "Port": 60002
        }
      ],
      "UpstreamPathTemplate": "/article/{all}",
      "UpstreamHttpMethod": ["GET","POST"]
    }
  ],
  "GlobalConfiguration": {
    "BaseUrl": "https://localhost:60003/"
  }
}
  启动的时候将配置文件加进去,并且Startup中添加相应的中间件:services.AddOcelot(),app.UseOcelot();
 public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
             .ConfigureAppConfiguration((hostingContext, config) =>
             {
                 config.SetBasePath(hostingContext.HostingEnvironment.ContentRootPath)
                       .AddJsonFile("ocelot.json", optional: true, reloadOnChange: true)
                       .AddEnvironmentVariables();
             }).UseStartup<Startup>();
  启动三个项目,运行效果如下:

总结
  这样就能实现将网关做为统一入口,统一管理了。后续在加上各种Ocelot的功能实现。
Asp.Net Core + Ocelot 网关搭建:路由简单配置的更多相关文章
- Asp.Net Core + Ocelot 网关搭建:负载均衡的配置
		前言 上一篇中简单做了一个网关Demo.本篇中也记录一下负载均衡的配置实现. 演示 首先开三个服务,端口分别为 60001,60003,60005,然后分别启动三个服务.接下来在ApiGate ... 
- Asp.net Core + Log4net + ELK 搭建日志中心
		原文:Asp.net Core + Log4net + ELK 搭建日志中心 Docker中一键安装ELK 对于这种工具类的东西,第一步就直接到docker的hub中查找了,很幸运,不仅有Elasti ... 
- asp.net core mvc 中间件之路由
		asp.net core mvc 中间件之路由 路由中间件 首先看路由中间件的源码 先用httpContext实例化一个路由上下文,然后把中间件接收到的路由添加到路由上下文的路由集合 然后把路由上下文 ... 
- ASP.NET Core 缓存技术 及 Nginx 缓存配置
		前言 在Asp.Net Core Nginx部署一文中,主要是讲述的如何利用Nginx来实现应用程序的部署,使用Nginx来部署主要有两大好处,第一是利用Nginx的负载均衡功能,第二是使用Nginx ... 
- ASP.NET Core 2.2 基础知识(六) 配置(内含MySql+EF)
		先上一段代码,了解一下 .NET Core 配置数据的结构. 新建一个 控制台项目,添加一个文件 json.json ,文件内容如下: { "country": "cn& ... 
- [ASP.NET Core 3框架揭秘] Options[1]: 配置选项的正确使用方式[上篇]
		依赖注入不仅是支撑整个ASP.NET Core框架的基石,也是开发ASP.NET Core应用采用的基本编程模式,所以依赖注入十分重要.依赖注入使我们可以将依赖的功能定义成服务,最终以一种松耦合的形式 ... 
- asp.net core 3.0 MVC JSON 全局配置
		asp.net core 3.0 MVC JSON 全局配置 System.Text.Json(default) startup配置代码如下: using System.Text.Encodings. ... 
- [ASP.NET Core 3框架揭秘] Options[2]: 配置选项的正确使用方式[下篇]
		四.直接初始化Options对象 前面演示的几个实例具有一个共同的特征,即都采用配置系统来提供绑定Options对象的原始数据,实际上,Options框架具有一个完全独立的模型,可以称为Options ... 
- [ASP.NET Core开发实战]基础篇06 配置
		配置,是应用程序很重要的组成部分,常常用于提供信息,像第三方应用登录钥匙.上传格式与大小限制等等. ASP.NET Core提供一系列配置提供程序读取配置文件或配置项信息. ASP.NET Core项 ... 
随机推荐
- [PHP] PHP的脚本执行
			PHP的脚本执行:PHP的脚本执行还是会经过编译环节, 只不过它们一般会在运行的时候实时进行编译1.启动PHP及Zend引擎, 加载注册的扩展模块2.读取脚本文件,Zend引擎对脚本文件进行词法分析, ... 
- [LeetCode]Remove Duplicates from Sorted Array题解
			Remove Duplicates from Sorted Array: Given a sorted array, remove the duplicates in place such that ... 
- 基于jQuery日历插件制作日历
			这篇文章主要介绍了基于jQuery日历插件制作日历的相关资料,需要的朋友可以参考下 来看下最终效果图吧: 是长得丑了一点,不要吐槽我-.- 首先来说说这个日历主要的制作逻辑吧: ·一个月份最多有31天 ... 
- CSS知多少
			1.Cascading Style Sheets 层叠样式表 2.层叠就是浏览器对多个样式来源进行叠加,最终确定结果的过程. 3. 样式的5大来源:浏览器默认样式.浏览器用户自定义样式.行内样式.内部 ... 
- Nodejs +  express   post get 参数获取小结
			req.params.xxxxx 从path中的变量 req.query.xxxxx 从get中的?xxxx=中 req.body.xxxxx 从post中的变量 Post下别忘了: app.use( ... 
- SQL server查找指定表的所有索引
			WITH tmp AS ( SELECT indexname = a.name , tablename = c.name , indexcolumns = d.name , a.indid FROM ... 
- GoJs实现流程管理图
			GoJS是一个实现交互类图表(比如流程图,树图,关系图,力导图等等)的JS库. 可以加入诸多功能.如流程判断,节点处理等等.GOJS在设计上极大的减轻了开发人员的开发成本. 
- arcgis 3种方法快速制作tpk文件(转)
			来自:http://blog.csdn.net/arcgis_mobile/article/details/8048549 tpk是ArcGIS10.1推出的一种新的数据文件类型,主要是用于将切片文件 ... 
- OkHttp3源码详解(三) 拦截器-RetryAndFollowUpInterceptor
			最大恢复追逐次数: ; 处理的业务: 实例化StreamAllocation,初始化一个Socket连接对象,获取到输入/输出流()基于Okio 开启循环,执行下一个调用链(拦截器),等待返回结果(R ... 
- 反射报错java.lang.IllegalArgumentException: wrong number of arguments
			class Person{ private String name ; private String sex ; public Person(){ System.out.println("c ... 
