#java #spring-cloud #spring-cloud-stream #spring-cloud-stream-binder-kafka
#java #spring-cloud #spring-cloud-stream #spring-cloud-stream-binder-kafka
Вопрос:
Я только что понял, что сообщение, однажды полученное в теме Kafka, теряет заголовки. Есть ли способ добавить заголовки к сообщению перед публикацией в теме Kafka, а затем прочитать его у потребителя? Я использую Java 11, Spring Cloud Hoxton.SR6, Spring 2.2.4, kafka_2.13-2.6.0. Заранее спасибо!
Ответ №1:
Я думаю, что опубликовал вопрос слишком рано. Это довольно просто. Получите заголовки запроса из HttpServletRequest или HttpRequest(spring), а затем при записи в MessageChannel вызовите метод CopyHeaders при передаче заголовков. Вы также можете пропустить те, которые не нужны. У потребителя вместо пользовательского объекта получите объект Message, содержащий все заголовки
Производитель MessageBuilder.withPayload(message).copyHeaders(headersMap).build();
потребитель processMessage(Message<?> message)