【问题标题】:Is using jwt tokens as correlation ID a good practice?使用 jwt 令牌作为相关 ID 是一种好习惯吗?
【发布时间】:2020-02-29 00:01:34
【问题描述】:

我需要跨多个微服务层跟踪请求。

要做到这一点,最佳做法是使用“相关 ID”,无论如何,在我的应用中,我已经在使用 jwt 令牌来处理多个信息。

jwt 令牌是否可以作为相关 id 的良好候选者,还是我应该生成一个单独的?

【问题讨论】:

  • 您是否考虑过使用Spring Cloud Sleuth?这非常神奇,将依赖项放入您的微服务中,它将开始为您维护跟踪标头。假设您进行 REST 调用,如果您通过 WebserviceTemplate 使用 SOAP,那么它需要一些自定义拦截器的帮助。

标签: spring-boot jwt microservices correlation


【解决方案1】:

除非您计划为每个请求生成一个新的 JWT,否则 JWT 可能不是存储相关 ID 的最佳位置。这是为什么会这样的一个例子。许多网站,例如 Facebook 或 Stack Overflow,都会发布持久的 JWT,它们要么永不过期,要么很少过期。如果您将关联 ID 存储在 JWT 的声明部分中,则在创建 JWT 时,该用户发出的所有请求都将具有相同的关联 ID。这至少会部分破坏关联 ID 的用途,因为现在不同的请求流可能看起来是同一件事。

如果您在此处使用 Java,请考虑使用映射诊断上下文 (MDC),该框架可以无缝地使请求标头中的相关 ID 可用于您的应用程序,用于跨所有微服务进行日志记录。

【讨论】:

    猜你喜欢
    • 2020-06-10
    • 2022-09-30
    • 2020-05-27
    • 2013-03-30
    • 2015-02-18
    • 2016-03-20
    • 2011-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多