上一篇文章介绍了Ocelot的基本概念:https://www.cnblogs.com/yangleiyu/p/15043762.html
本文介绍在.net core中如何使用ocelot 。
Ocelot是系统中对外暴露的一个请求入口,所有外部接口都必须通过这个网关才能向下游API发出请求
1、Nuget引用Ocelot(注意版本,我用的是16.0.1)
2、根目录添加配置文件Ocelot.json
{"ReRoutes": [],"GlobalConfiguration": {}}说明:ReRoutes是一个数组 , 将会包含服务器的路由配置 , GlobalConfiguration则是一个全局配置项 。
3、修改Program.cs , 引用添加的配置文件
文章插图
4、修改Startup.cs注册服务
文章插图
5、配置文件
【二、.Net Core搭建Ocelot】配置如下:
文章插图
{//全局配置"GlobalConfiguration": {"BaseUrl": "http://192.168.50.118:8003/" //网关暴露的的地址 。},//路由配置"routes": [{///{url}转发所有//"UpstreamHost": "localhost:4023"转发特定服务"UpstreamPathTemplate": "/QiantoonService/Oam", //上游Api请求路由规则"DownstreamPathTemplate": "/QiantoonService/Oam/Oam", //网关转发到下游路由规则"UpstreamHttpMethod": [ "GET", "POST" ], //上下游支持请求方法"DownstreamScheme": "http", //下游服务配置"DownstreamHostAndPorts": [{"Host": "192.168.50.118", //下游地址"Port": 8001 //下游端口号}]},{"UpstreamPathTemplate": "/QiantoonService/SelfReg", //上游Api请求路由规则"DownstreamPathTemplate": "/QiantoonService/SelfReg/SelfReg", //网关转发到下游路由规则"UpstreamHttpMethod": [ "GET", "POST" ], //上下游支持请求方法"DownstreamScheme": "http", //下游服务配置"DownstreamHostAndPorts": [{"Host": "192.168.50.118", //下游地址"Port": 8002 //下游端口号}]}]}其他说明:
GlobalConfiguration , 它是一个全局配置项,通常我们都要在这个配置项中添加一个属性
BaseUrl
,BaseUrl就是Ocelot服务对外暴露的Url 。"GlobalConfiguration": {"BaseUrl": "http://localhost:4727"}ReRoutes是一个数组,其中的每一个元素代表了一个路由 , 而一个路由所包含的所有可配置参数如下:
{"DownstreamPathTemplate": "/","UpstreamPathTemplate": "/","UpstreamHttpMethod":["Get"],"AddHeadersToRequest": {},"AddClaimsToRequest": {},"RouteClaimsRequirement": {},"AddQueriesToRequest": {},"RequestIdKey": "","FileCacheOptions":{"TtlSeconds": 0,"Region": ""},"ReRouteIsCaseSensitive": false,"ServiceName": "","DownstreamScheme": "http","DownstreamHostAndPorts":[{"Host": "localhost","Port": 8001,}],"QoSOptions":{"ExceptionsAllowedBeforeBreaking": 0,"DurationOfBreak": 0,"TimeoutValue": 0},"LoadBalancer": "","RateLimitOptions":{"ClientWhitelist": [],"EnableRateLimiting": false,"Period": "","PeriodTimespan": 0,"Limit": 0},"AuthenticationOptions":{"AuthenticationProviderKey": "","AllowedScopes": []},"HttpHandlerOptions":{"AllowAutoRedirect": true,"UseCookieContainer": true,"UseTracing": true},"UseServiceDiscovery": false}具体含义介绍:
Downstream 下游服务配置
UpStream 上游服务配置
Aggregates 服务聚合配置
ServiceName, LoadBalancer, UseServiceDiscovery 服务发现配置
AuthenticationOptions 服务认证配置
RouteClaimsRequirement Claims 鉴权配置
RateLimitOptions 限流配置
FileCacheOptions 缓存配置
QosOptions 服务质量与熔断配置
DownstreamHeaderTransform 头信息转发配置
注意
配置文件中“routes”关键字为新版本,旧版本关键字为“ReRoutes”
此处巨坑,小杨被坑了半天
推荐阅读
- 二 Java多线程-线程关键字
- 二 Java 编码那些事
- 女神降临男二什么时候知道女主素颜_女神降临男二知道素颜了么
- 创建.NET程序Dump的几种姿势
- 支持JDK19虚拟线程的web框架,之二:完整开发一个支持虚拟线程的quarkus应用
- FlinkSql之TableAPI详解
- 六 Selenium4+Python3系列 - Selenium的三种等待,强制等待、隐式等待、显式等待
- 二 【性能测试】Loadrunner12.55-飞机订票系统-脚本录制
- C# 8.0 添加和增强的功能【基础篇】
- .NET性能系列文章二:Newtonsoft.Json vs. System.Text.Json