Согласно этой теме:
Интеграция Kafka Spring: заголовки не идет для потребителя kafka - это не поддержка заголовков для Kafka
Но документация говорит:
spring.cloud.stream.kafka.binder.headers
Список настраиваемых заголовков, которые будут переноситься подшивкой.По умолчанию: пусто.
Я не могу заставить его работать с spring-cloud-stream-binder-kafka: 1.2.0.RELEASE
ОТПРАВКА ЖУРНАЛА:
MESSAGE (e23885fd-ffd9-42dc-ebe3-5a78467fee1f) SENT :
GenericMessage [payload=...,
headers={
content-type=application/json,
correlationId=51dd90b1-76e6-4b8d-b667-da25f214f383,
id=e23885fd-ffd9-42dc-ebe3-5a78467fee1f,
contentType=application/json,
timestamp=1497535771673
}]
ПОЛУЧЕНИЕ ЖУРНАЛА:
MESSAGE (448175f5-2b21-9a44-26b9-85f093b33f6b) RECEIVED BY HANDLER 1:
GenericMessage [payload=...,
headers={
kafka_offset=36,
id=448175f5-2b21-9a44-26b9-85f093b33f6b,
kafka_receivedPartitionId=0,
contentType=application/json;charset=UTF-8,
kafka_receivedTopic=new_patient, timestamp=1497535771715
}]
MESSAGE (448175f5-2b21-9a44-26b9-85f093b33f6b) RECEIVED BY HANDLER 2 :
GenericMessage [payload=...,
headers={
kafka_offset=36,
id=448175f5-2b21-9a44-26b9-85f093b33f6b,
kafka_receivedPartitionId=0,
contentType=application/json;charset=UTF-8,
kafka_receivedTopic=new_patient, timestamp=1497535771715
}]
Я ожидаю увидеть то же сообщение id и получить correlationId на принимающей стороне.
application.properties:
spring.cloud.stream.kafka.binder.headers=correlationId
spring.cloud.stream.bindings.newTest.destination=new_test
spring.cloud.stream.bindings.newTestCreated.destination=new_test
spring.cloud.stream.default.consumer.headerMode=embeddedHeaders
spring.cloud.stream.default.producer.headerMode=embeddedHeaders
ОТПРАВКА СООБЩЕНИЯ:
@Publisher(channel = "testChannel")
public Object newTest(Object param) {
...
return myObject;
}