node使用async_hooks模块进行请求追踪
async_hooks 模块是在 v8.0.0 版本正式加入 Node.js 的实验性 API。我们也是在 v8.x.x 版本下投入生产环境进行使用。那么如何使用这种追踪能力,使用的过程中又有什么问题呢?认识 async_hooksv8.x.x 版本下的 async_hooks 主要有两部分组成,一个是 createHook 用以追踪生命周期,一个是 AsyncResource 用于创建异步资源。上面这段代码的含义和执行结果是:。此时,我们就需要使每次读写前,JS 都能进入一个全新的异步资源上下文,即获得一个全新的 asyncId,避免这种复用。需要将调用链存储的部分做以下几方面修改:值得一提的是,这种使用 callback 的组织方式与 koajs 的中间件的模式十分一致。好在 NodeJs v9.x.x 版本中提供了创建异步上下文的官方实现方式 asyncResource.runInAsyncScope。
用户评论