美文网首页
Ocelot中文文档-请求Id和关联Id

Ocelot中文文档-请求Id和关联Id

作者: loogn | 来源:发表于2018-05-08 11:51 被阅读224次

Ocelot支持一个客户端以头的形式发送requestid。 如果设置了,一旦中间件管道中可用,Ocelot便会使用这个requestid进行日志记录。 Ocelot也会使用指定头将requireid转发给下游服务。

如果在日志配置中你设置IncludeScopes为true,你还可以在日志中获取asp.net core的请求id。

为了是用requestid,有两种选择。

全局

在ocelot.json的GlobalConfiguration配置块中如下设置。这样所有进入Ocelot的请求都会起作用。

 "GlobalConfiguration": {
  "RequestIdKey": "OcRequestId"
}

我建议使用GlobalConfiguration,除非你真的需要它是指定ReRoute的。

ReRoute

如果你想覆盖全局设置,在ocelot.json的特定ReRoute中添加如下设置。

"RequestIdKey": "OcRequestId"

一旦Ocelot识别出与ReRoute对象匹配的请求,它将根据ReRoute的配置来设置requestid。

这可能会导致一下困惑。如果你在GlobalConfiguration中设置了requestid,可能在ReRoute被匹配前是一个,匹配后是另一个,因为requestid的key会变。这是因为设计如此,而且这是我目前能想到的最好的解决方案了。在这种情况下OcelotLogger会在日志中记录当前requestid和上一个requestid。

下面的例子是debug级别下一个正常请求的日志记录。

dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
      requestId: asdf, previousRequestId: no previous request id, message: ocelot pipeline started,
dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0]
      requestId: asdf, previousRequestId: no previous request id, message: upstream url path is {upstreamUrlPath},
dbug: Ocelot.DownstreamRouteFinder.Middleware.DownstreamRouteFinderMiddleware[0]
      requestId: asdf, previousRequestId: no previous request id, message: downstream template is {downstreamRoute.Data.ReRoute.DownstreamPath},
dbug: Ocelot.RateLimit.Middleware.ClientRateLimitMiddleware[0]
      requestId: asdf, previousRequestId: no previous request id, message: EndpointRateLimiting is not enabled for Ocelot.Values.PathTemplate,
dbug: Ocelot.Authorisation.Middleware.AuthorisationMiddleware[0]
      requestId: 1234, previousRequestId: asdf, message: /posts/{postId} route does not require user to be authorised,
dbug: Ocelot.DownstreamUrlCreator.Middleware.DownstreamUrlCreatorMiddleware[0]
      requestId: 1234, previousRequestId: asdf, message: downstream url is {downstreamUrl.Data.Value},
dbug: Ocelot.Request.Middleware.HttpRequestBuilderMiddleware[0]
      requestId: 1234, previousRequestId: asdf, message: setting upstream request,
dbug: Ocelot.Requester.Middleware.HttpRequesterMiddleware[0]
      requestId: 1234, previousRequestId: asdf, message: setting http response message,
dbug: Ocelot.Responder.Middleware.ResponderMiddleware[0]
      requestId: 1234, previousRequestId: asdf, message: no pipeline errors, setting and returning completed response,
dbug: Ocelot.Errors.Middleware.ExceptionHandlerMiddleware[0]
      requestId: 1234, previousRequestId: asdf, message: ocelot pipeline finished,

previous
next

相关文章

  • Ocelot中文文档-请求Id和关联Id

    Ocelot支持一个客户端以头的形式发送requestid。 如果设置了,一旦中间件管道中可用,Ocelot便会使...

  • Elasticsearch 6.x 倒排索引与分词

    倒排索引 正排索引:文档id到单词的关联关系 倒排索引:单词到文档id的关联关系 示例:对以下三个文档去除停用词后...

  • hibernate中对象状态

    瞬时状态 没有id,和session没有关联 持久化状态 有id,和session有关联主要是有id,有了id,s...

  • Ocelot中文文档-请求聚合

    Ocelot允许您指定聚合多个普通ReRoutes的Aggregate ReRoutes(聚合路由),并将其响应映...

  • Elasticsearch(ES)文档的CRUD

    新增文档(不指定文档ID) 新增文档(指定文档ID) 通过文档ID获取文档 通过文档ID更新文档 通过文档ID删除...

  • 正排索引与倒排索引

    正排 -- 目录 文档id 到 文档内容 和 单词 的一个关联 倒排 -- (关键词)索引页 count : 单词...

  • RequestMapping限定请求参数

    当前请求不能包括id属性 当前请求必须包含id属性 当前请求id必须为1 当前请求不能为1 当前请求必须包含 id...

  • thinkCMF 表关联

    通过a.type_id=b.id``使service表和portal_service表关联。关联目的:用于取出po...

  • 随笔代码

    中文api文档 跳转到制定的ID的地图: $gamePlayer.reserveTransfer(mapId, x...

  • Mysql 创建关联表写法

    创建关联表写法 FOREIGN KEY(pid) references sheng(id));为关联省份表id的写法

网友评论

      本文标题:Ocelot中文文档-请求Id和关联Id

      本文链接:https://www.haomeiwen.com/subject/jiylrftx.html