根据这一主题:
卡夫卡弹簧整合:卡夫卡消费者不会来的标题 -这不是卡夫卡的头支持
但是文档说:
spring.cloud.stream.kafka.binder.headers 将由绑定程序传输的自定义标头列表。 默认值:空。
I无法让它与弹簧云流绑定-kafka:1.2.0
发送日志:
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
}]我希望看到相同的消息-- correlationId id,并在接收端获取。
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;
}发布于 2017-06-15 13:52:48
是的,是的:属性
headerMode 当设置为raw时,将禁用对输入的头解析。仅对不支持本机消息头且需要头嵌入的消息传递中间件有效。当入站数据来自外部Stream应用程序时非常有用。 默认值: embeddedHeaders
但这已经是春云流的故事了,而不是Spring本身。
https://stackoverflow.com/questions/44569272
复制相似问题