gpt4 book ai didi

asp.net-core - 我应该在请求 header 中使用 Request-Id、X-Request-Id 还是 X-Correlation-Id?

转载 作者:行者123 更新时间:2023-12-04 11:11:06 37 4
gpt4 key购买 nike

我不清楚应该将哪个 id header 放入请求和响应中以用于关联目的。

“X-Correlation-ID”和“X-Request-ID”是已知的 http header 。我在请求和响应中使用哪一个重要吗?

ASP.NET Core 的 System.Diagnostics.DiagnosticSource 查找“Request-Id”。这仅用于事件目的吗?为什么不使用“X-Request-ID”?

如果我不使用 Activity,我就不需要发送该 header ,对吗?

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()}";

还是使用事件更好?我发现 Activity.Current 始终为空。是否需要启用它是否会影响性能?

最佳答案

对于 Request-Id ,它唯一标识了每个涉及操作处理的HTTP请求,在调用方生成并传递给被调用方。
对于 X-Correlation-ID ,也称为 Transit ID,是附加到请求和消息的唯一标识符值,允许引用特定事务或事件链。
对于每个请求,您应该使用 Request-Id , 对于请求事务,您应该使用 X-Correlation-ID .

If I don't use the Activity, I don't need to send that header, right?


对于 Correlation ID,一般情况下,您不必使用一个。但是,如果您正在设计一个包含消息队列和异步处理的分布式系统,那么您最好在消息中包含一个关联 ID。

I find the Activity.Current is always null. Does it need to be enabled and does it affect performance?


用于使用 Activity.Current ,您需要能够 ApplicationInsights ,或实现您自己的功能来管理事件。
  • 安装 Microsoft.ApplicationInsights.AspNetCore
  • 配置 WebHost.CreateDefaultBuilder(args).UseStartup<Startup>().UseApplicationInsights()
  • 使用喜欢 var activity = Activity.Current;
  • 关于asp.net-core - 我应该在请求 header 中使用 Request-Id、X-Request-Id 还是 X-Correlation-Id?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56068619/

    37 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com