博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Ocelot中文文档-请求Id和关联Id
阅读量:5101 次
发布时间:2019-06-13

本文共 2547 字,大约阅读时间需要 8 分钟。

原文:

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,
posted on
2019-01-09 13:30 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/10243760.html

你可能感兴趣的文章
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
linux--GCC用法
查看>>
Ubuntu下安装MySQL及简单操作
查看>>
OWIN是什么?
查看>>
前端监控
查看>>
centos6.5 mysql忘记登入密码
查看>>
Trusted Execution Technology (TXT) --- 启动控制策略(LCP)篇
查看>>
clipboard.js使用方法
查看>>
绘图库:Matplotlib
查看>>
0906第一次作业
查看>>
Ceph Monitor基础架构与模块详解
查看>>
dbca:Exception in thread "main" java.lang.UnsatisfiedLinkError: get
查看>>
hdu 1232 畅通工程(并查集)
查看>>
移动开发平台-应用之星app制作教程
查看>>
使用VIsio绘制E-R图
查看>>
Linux文件类型 扩展名的作用
查看>>
MySQL常用命令基础操作
查看>>
五种进程调度的算法实现(二)
查看>>
MySQL数据库的登陆
查看>>
linux解压缩6层
查看>>