Как передать контекст Sleuth MDC поверх сообщения Google PubSub

#spring #google-cloud-pubsub #spring-cloud-sleuth #mdc

#весна #google-облако-pubsub #spring-cloud-sleuth #mdc

Вопрос:

Я следую архитектуре, основанной на микросервисах, для разработки своего сервиса. Я хочу отслеживать каждый мой запрос с помощью различных вызовов микросервисов в моей системе. Мои микросервисы обмениваются данными через платформу обмена сообщениями Google PubSub. Я не могу найти какой-либо готовый способ передачи контекста MDC для моих последующих вызовов службы. Я использую spring Sleuth для отслеживания. Есть ли какой-нибудь способ, которым я могу передать контекст MDC через вызовы PubSub?

Ответ №1:

Если под «MDC» вы подразумеваете контекст отслеживания, то вы можете, например, использовать Spring Cloud Stream с Google PubSub, который будет работать из коробки. Если вам нужно сделать это вручную, вы можете получить доступ к текущему диапазону из Tracer компонента, через tracer.currentSpan() и из него SpanContext вы можете получить идентификатор трассировки и идентификатор диапазона, которые вы должны передать в сообщение Google PubSub.