Ktor 相当于 Reactor 项目中的 "Context"?

Ktor equivalent of "Context" from project Reactor?

在 Reactor 项目中有一个 Context 的概念,它是一个可以跨组件共享的键值存储。我们在一些项目中使用它来管理 correlationId。 API参考:https://projectreactor.io/docs/core/release/api/reactor/util/context/Context.html

我想知道ktor中有没有类似的概念?我想要一种方法来管理共享的东西,例如整个应用程序中的 correlationId,然后我可以在发出客户端请求时从中提取?

Kotlin 有一个 CoroutineContext 的概念,它与您所需要的类似 - 它是每个协程都带有的类似映射的结构。
它在官方文档中的定义很模糊:here and here.
这就是它如何用于跟踪的例子:https://github.com/Shinigami072/OpenTracing-Kotlin-Coroutine-Integration/blob/master/coroutine-tracing-api-core/src/main/kotlin/ActiveSpan.kt