Переадресация заголовков запросов на следующий микросервис с использованием Jaeger в SpringBoot

У меня есть два основных микросервиса Springboot, и я использую Jaeger. Допустим, две службы foo а также bar, Я могу отправить User-Agent Заголовок из сервиса foo в бар, используя свойство Tracing Baggage.

От foo сервис, я буду звонить bar использование сервиса localhost:port по состоянию на сейчас.

Пользователи также отправят x-api-key Заголовок в запросе. Этот заголовок не пересылается с foo в bar оказание услуг.

Это мой фрагмент кода,

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-agent а также uberctx-x-api-key

Я не уверен почему uber-ctx-* добавлено, я только хочу x-api-key заголовок для пересылки.

1 ответ

Установка элемента багажа отличается от настройки заголовка HTTP. Вы должны использовать свой HTTP-клиент (не показанный в вашем примере), чтобы установить HTTP-заголовок.

Элементы багажа могут быть или не быть доступны в виде отдельных заголовков HTTP: это детальная реализация базового трассировщика, такого как Jaeger.

Другие вопросы по тегам