我不清楚应该将哪个 id 标头放入请求和响应中以用于关联目的。
“X-Correlation-ID”和“X-Request-ID”是已知的 http 标头。我在请求和响应中使用哪一个重要吗?
ASP.NET Core 的 System.Diagnostics.DiagnosticSource 查找“Request-Id”。这仅用于活动目的吗?为什么不使用“X-Request-ID”?
如果我不使用 Activity,我就不需要发送该标头,对吗?
ASP.NET Core 也有 我喜欢这个想法的分层请求 ID ( https://github.com/dotnet/corefx/blob/master/src/System.Diagnostics.DiagnosticSource/src/HierarchicalRequestId.md )。我可以做这样的事情
var newRequestId = $"{context.Request.headers["X-Correlation-ID"]}:{CreateNewGuid()}";
Run Code Online (Sandbox Code Playgroud)
还是使用活动更好?我发现 Activity.Current 始终为空。是否需要启用它是否会影响性能?
Tao*_*hou 16
对于Request-Id,它唯一标识了每个涉及操作处理的 HTTP 请求,并在调用方生成并传递给被调用方。
For X-Correlation-ID,也称为 Transit ID,是附加到请求和消息的唯一标识符值,允许引用特定事务或事件链。
对于每个请求,您应该使用Request-Id,对于请求事务,您应该使用X-Correlation-ID。
如果我不使用 Activity,我就不需要发送该标头,对吗?
对于 Correlation ID,通常不必使用一个。但是,如果您正在设计一个包含消息队列和异步处理的分布式系统,那么您最好在消息中包含一个关联 ID。
我发现 Activity.Current 始终为空。是否需要启用它是否会影响性能?
要使用Activity.Current,您需要能够ApplicationInsights或实现您自己的功能来管理活动。
Microsoft.ApplicationInsights.AspNetCoreWebHost.CreateDefaultBuilder(args).UseStartup<Startup>().UseApplicationInsights()var activity = Activity.Current;| 归档时间: |
|
| 查看次数: |
15556 次 |
| 最近记录: |