我有以下结构:
问题是,当kafka接收器向kafka Queue发送事件,并且kafka源已经收到来自kafka主题的消息时,然后,下一个模块尝试读取头,它失败,因为没有找到头
我提出以下解决方案:要将标头包装在消息中,因此,内部有效负载将包含原始有效负载+标头。
我还有其他选择吗?
答案 0 :(得分:0)
由于Kafka本身不支持标题,因此Kafka消息总线支持您描述的确切机制 - 只是您必须选择要通过总线传输的标题名称,以避免传输不需要的标题。
向下滚动到Kafka消息总线属性。
messagebus:
kafka:
# connection properties
brokers: localhost:9092 (1)
zkAddress: localhost:2181 (2)
socketBufferSize: 2097152 (3)
# operating mode
mode: embeddedHeaders (4)
offsetManagement: kafkaTopic
headers:
# comma-delimited list of additional header names to transport (6)
...
- 公交车运输的自定义标题列表。
醇>
修改强>
对于兔子,默认情况下会传输所有标题:
replyHeaderPatterns: STANDARD_REPLY_HEADERS,*
...
requestHeaderPatterns: STANDARD_REQUEST_HEADERS,*
修改强>
如果您的意思是希望使用相同的技术使用接收器/源从Kafka发送/接收,那么您可以使用XD的支持类 - 请参阅EmbeddedHeadersMessageConverter
。标头值编码为JSON。