【发布时间】:2020-04-19 05:19:15
【问题描述】:
我想用kafka流实现请求-响应模式,我使用spring boot kafka,它添加一些数据作为header,命名为correlation id,但是当kafka流API处理请求消息时,header数据会丢失,可以'不要发送到响应主题! 我该如何解决它,或者使用其他方法??
【问题讨论】:
-
表头数据是如何“丢失”的? Kafka 本身不仅会丢失部分消息负载。您(或 Spring Boot)将该标题放在哪里?
-
否,在 kafka 流中进行了一些重新分区操作,然后标头丢失
-
@zydzjy 为什么不尝试将标头放入 kafka 消息负载中?你使用了什么样的操作符导致重新分区?
-
@TuyenLuong 我使用spring boot kafkaTemplate,它使用correlationId作为消息头,处理器包括重新分区操作
-
no,some re-partition operation in kafka stream,then header lost-- 你用的是什么版本? Kafka Streams 支持v2.0(cf stackoverflow.com/questions/46736484/…) 的标头——但我不确定你想要实现什么。 Kafka Streams 是为流处理而构建的,而不是 req/resp:你们中的意思是您的请求是输入主题中的消息,并且您对输出主题产生响应(这应该可以,但我不会称其为 req/resp模式;那是真正的流处理)。
标签: spring-boot apache-kafka apache-kafka-streams