ตามหัวข้อนี้:
Kafka Spring Integration: Headers not มาสำหรับผู้บริโภคคาฟคา - นี่ไม่ใช่การสนับสนุนส่วนหัวสำหรับคาฟคา
แต่เอกสารประกอบ พูดว่า:
spring.cloud.stream.kafka.binder.headers
รายการส่วนหัวแบบกำหนดเองที่จะถูกส่งโดย Binderค่าเริ่มต้น: ว่างเปล่า
ฉันไม่สามารถทำให้มันใช้งานได้กับ 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 ในด้านรับ
ใบสมัครคุณสมบัติ:
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;
}