[译]Ocelot - Routing】的更多相关文章

原文 Ocelot主要的功能就是将http请求转发到对应的下游服务上去. Ocelot将一个请求路由到另外一个路由的动作叫做ReRoute.为了能让Ocelot能正常工作,需要在配置中设置ReRoute. { "ReRoutes": [ ] } 配置ReRoute需要添加一个ReRoutes json 数组. { "DownstreamPathTemplate": "/api/posts/{postId}", "DownstreamSc…
原文 你可以指定一个service discovery provider,ocelot将使用它来找下游的host和port. Consul 下面的配置要放在GlobalConfiguration中.如果你没有指定host和port,那么就需要一个service discovery provider,默认使用的是Consul. "ServiceDiscoveryProvider": { "Host": "localhost", "Port…
原文 目录 Big Picture Getting Started Configuration Routing Request Aggregation Service Discovery Authentication TODO Authorisation TODO Rate Limiting Caching Quality of Service Headers Transformation Claims Transformation Logging Tracing Request Id / Co…
原文 可以针对每个ReRoute设置对下游服务的熔断器circuit breaker.这部分是通过Polly实现的. 将下面的配置添加到一个ReRoute下面去. "QoSOptions": { "ExceptionsAllowedBeforeBreaking":3, "DurationOfBreak":5, "TimeoutValue":5000 } ExceptionsAllowedBeforeBreaking必须大于0.…
原文 Ocelot支持基本的缓存,目前Ocelot的缓存是通过CacheManager project实现的. 下面的示例展示了如何启用缓存: s.AddOcelot() .AddCacheManager(x => { x.WithDictionaryHandle(); }) 为了在路由中使用缓存,需要在ReRoute中添加下面的配置: "FileCacheOptions": { "TtlSeconds": 15, "Region": &q…
原文 Ocelot支持对上游做访问限流,这样就可以保证下游不要负载太大了. 如果要启用访问限流,需要做如下配置: "RateLimitOptions": { "ClientWhitelist": [], "EnableRateLimiting": true, "Period": "1s", "PeriodTimespan": 1, "Limit": 1 } Clien…
原文 Aggregate ReRoutes用来组合多个ReRoutes,将它们的响应结果映射到一个响应中返回给客户端. 为了使用Aggregate ReRoutes,你必须像下面的ocelot.json中做些配置. 在下面的例子中,有两个ReRoutes,且它们都有一个Key属性,我们将使用ReRoute里面的key在Aggregate中组合ReRoute.Aggregate 和 ReRoutes的UpstreamPathTemplate不能重复.Aggregate可以使用ReRoute中出了R…
原文 Ocelot专为.NET Core而设计. .NET Core 2.1 安装 首先需要创建一个netstandard2.0项目,然后再通过nuget安装. Install-Package Ocelot Configuration 下面是个最基本的最简单的ocelot.json文件的内容. { "ReRoutes": [], "GlobalConfiguration": { "BaseUrl": "https://api.mybus…
原文 这里有一个配置的样例.配置主要有两个部分.一个是ReRoutes数组,另一个是GlobalConfiguration.ReRoute告诉Ocelot怎么处理上游的请求.Global configuration能让我们覆盖一些ReRoute的一些配置. { "ReRoutes": [], "GlobalConfiguration": {} } 这里是一个ReRoutes的配置样例(你不需要设置下面所有的配置): { "DownstreamPathTem…
原文 可以为HttpClient添加delegating handlers. Usage 为了添加delegating handler需要做两件事. 首先如下一样创建一个类. public class FakeHandler : DelegatingHandler { protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell…