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

原文 Aggregate ReRoutes用来组合多个ReRoutes,将它们的响应结果映射到一个响应中返回给客户端. 为了使用Aggregate ReRoutes,你必须像下面的ocelot.json中做些配置. 在下面的例子中,有两个ReRoutes,且它们都有一个Key属性,我们将使用ReRoute里面的key在Aggregate中组合ReRoute.Aggregate 和 ReRoutes的UpstreamPathTemplate不能重复.Aggregate可以使用ReRoute中出了R…
原文 Ocelot可以通过header的形式发送一个requestid.ocelot会将这个requestid转发到下游服务. 如果在日志配置中设置了IncludeScopes为true,那么request id会打在日志里面. 可以通过两种方式使用requestid. 1.Global - 配置如下GlobalConfiguration.这将作用于所有的请求 "GlobalConfiguration": { "RequestIdKey": "OcRequ…
原文 目录 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…
原文 可以为HttpClient添加delegating handlers. Usage 为了添加delegating handler需要做两件事. 首先如下一样创建一个类. public class FakeHandler : DelegatingHandler { protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancell…
原文 Ocelot使用标准的日志接口ILoggerFactory和ILogger<T>.它们封装在IOcelotLogger 和 IOcelotLoggerFactory中,因为ocelot要添加一些额外的信息(eg:request id)到日志中去. 还有一个内置的全局error handler,用来捕获异常并打日志. 如果日志级别设置为trace, ocelot将log starting, finishing和任何中间件抛出的异常. Warning 如果日志是设置输出到Console的,那…
原文 Add to Request 为上游请求添加请求头,只需如下一样将下面的配置添加到一个ReRoute里: "UpstreamHeaderTransform": { "Uncle": "Bob" } 上面的例子中添加了一个键为Uncle,值为Bob的请求头. 支持Placeholders. Add to Response 还可以为下游服务添加响应头, 如下一样将下面的配置添加到一个ReRoute里: "DownstreamHeade…
原文 可以针对每个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…
原文 你可以指定一个service discovery provider,ocelot将使用它来找下游的host和port. Consul 下面的配置要放在GlobalConfiguration中.如果你没有指定host和port,那么就需要一个service discovery provider,默认使用的是Consul. "ServiceDiscoveryProvider": { "Host": "localhost", "Port…