我需要将某些消息发布到一个主题,将另一组消息发布到另一个主题,我目前正在使用Spring集成Kafka将消息发布到一个主题,但我正在寻找一个例子,我该如何才能根据情况将消息发布到不同的主题。
我使用int-kafka:producer-configuration
标签来创建上下文
更新
谢谢你的工作。我在我的应用程序上下文xml中使用以下配置 以下在我的代码中检查获取所需的TOPIC名称kafkaUpdate = channel.send(MessageBuilder.withPayload(jsonAuditLog).setHeader(KafkaHeaders.TOPIC,"")。build(),kafkaTimeOut.longValue( ));
代码正在运行,我看到消息会根据需要发布到不同的主题,但不确定这是否是礼仪方式....
答案 0 :(得分:1)
你的意思是很老的版本。最新的Spring Integration Kafka 3.0.1
基于Spring Kafka 2.1.2
并且很长时间没有任何producer-configuration
。
考虑为实际的Apache Kafka 1.0.0
开发您的应用程序。
新的<int-kafka:outbound-channel-adapter>
有topic-expression
用于您的目的:https://docs.spring.io/spring-kafka/docs/2.1.2.RELEASE/reference/html/_spring_integration.html#si-outbound
<强>更新强>
旧版本在<int-kafka:outbound-channel-adapter>
上有此属性:
<xsd:attribute name="topic-expression" type="xsd:string">
<xsd:annotation>
<xsd:documentation><![CDATA[
Specifies the expression to determine the name of the Kafka topic
against the Message at runtime.
This attribute is mutually exclusive with 'topic' attribute.
]]></xsd:documentation>
</xsd:annotation>
</xsd:attribute>