【问题标题】:Forward request headers to next microservice using Jaeger in SpringBoot在 Spring Boot 中使用 Jaeger 将请求标头转发到下一个微服务
【发布时间】:2019-02-13 16:51:16
【问题描述】:

我有两个基本的 Springboot 微服务,我正在使用 Jaeger。假设两个服务是foobar。我可以使用 Tracing Baggage 属性将 User-Agent 标头从 foo 发送到 bar 服务。

foo 服务,我现在将使用localhost:port 调用bar 服务。

用户还将在请求中发送x-api-key 标头。此标头未从 foo 转发到 bar 服务。

这是我的代码 sn-p,

public ResponseEntity<String> fooService(@RequestHeader("User-Agent") String userAgent, @RequestHeader(value="x-api-key", required = false) String apikeyHeader) {
        try {
            /**
             * Set baggage
             */
            tracer.activeSpan().setBaggageItem("user-agent", userAgent);

            if (apikeyHeader != null && !apikeyHeader.isEmpty()) {
                tracer.activeSpan().setBaggageItem("x-api-key", apikeyHeader);
            }

在我的bar 服务的日志中,它正在接收这些标头, uberctx-user-agentuberctx-x-api-key

我不确定为什么要附加uber-ctx-*,我只想转发x-api-key 标头。

【问题讨论】:

    标签: spring-boot trace zipkin jaeger


    【解决方案1】:

    设置行李项与设置 HTTP 标头相同。您应该使用您的 HTTP 客户端(未在您的示例中显示)来设置 HTTP 标头。

    Baggage 项目可能作为单独的 HTTP 标头提供,也可能不提供:它是底层跟踪器的详细实现,例如 Jaeger's。

    【讨论】:

      猜你喜欢
      • 2020-03-02
      • 2021-03-26
      • 1970-01-01
      • 2022-01-15
      • 1970-01-01
      • 2023-03-24
      • 1970-01-01
      • 2021-07-09
      • 2018-09-12
      相关资源
      最近更新 更多