Kafka的Spring集成 - 配置多个主题

时间:2018-02-05 17:32:19

标签: spring-integration spring-kafka

我需要将某些消息发布到一个主题,将另一组消息发布到另一个主题,我目前正在使用Spring集成Kafka将消息发布到一个主题,但我正在寻找一个例子,我该如何才能根据情况将消息发布到不同的主题。

我使用int-kafka:producer-configuration标签来创建上下文

更新

谢谢你的工作。我在我的应用程序上下文xml中使用以下配置                                                                                                                                                                      以下在我的代码中检查获取所需的TOPIC名称kafkaUpdate = channel.send(MessageBuilder.withPayload(jsonAuditLog).setHeader(KafkaHeaders.TOPIC,"")。build(),kafkaTimeOut.longValue( ));

代码正在运行,我看到消息会根据需要发布到不同的主题,但不确定这是否是礼仪方式....

1 个答案:

答案 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>