gpt4 book ai didi

node.js - 使用 Node.js 通过堆栈和跨 thrift 服务边界携带请求上下文

转载 作者:搜寻专家 更新时间:2023-10-30 21:14:18 24 4
gpt4 key购买 nike

我正在尝试找出一种合适的方法来通过我的堆栈携带请求 ID(来自 restify 请求 header 的 x-request-id);跨越节俭的服务间调用,以及 rabbitmq 队列消息。目标是在任何地方、任何服务中,我都可以将错误或事件关联回发起的 http 请求。是否有使用 Node 执行此操作的已知做法?我想避免在几乎每个函数调用中传递上下文。

我研究了 New Relic 处理检测的方式,并且有这个博客:https://opbeat.com/blog/posts/how-we-instrument-nodejs/ ;但是这些类型的检测需要连接到大量的 Node 核心库调用中,并不能真正帮助在 thrift 调用中传递上下文。

我如何从请求中获取 restify header ID(例如“x-request-id”),并在我的堆栈中更深入地访问它(即使在异步回调中)而不修改每个函数以传递值?

我也在寻找一种干净的方式来通过所有 thrift 调用传递它(让它跨越服务边界)。

这是 TypeScript 和 Node.js 5.x

谢谢!

最佳答案

Is there a known practice for doing this with Node

在 NodeJs 中,您可以将 request 移动到您需要请求上下文的地方

对于所有其他系统,您需要以该事物的请求系统格式携带这些东西。例如。对于事件存储,我们将其存储在事件元数据中。

为了节俭,我建议将它作为一个属性添加到每个查询中,并在每个响应中回显。

关于node.js - 使用 Node.js 通过堆栈和跨 thrift 服务边界携带请求上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586934/

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