Spring integration 针对Kafka的Spring集成-配置多个主题
我需要将某些消息发布到一个主题,将另一组消息发布到另一个主题,我目前正在使用Spring integration for Kafka将消息发布到一个主题,但我正在寻找如何根据情况将消息发布到不同主题的示例 我正在使用Spring integration 针对Kafka的Spring集成-配置多个主题,spring-integration,spring-kafka,Spring Integration,Spring Kafka,我需要将某些消息发布到一个主题,将另一组消息发布到另一个主题,我目前正在使用Spring integration for Kafka将消息发布到一个主题,但我正在寻找如何根据情况将消息发布到不同主题的示例 我正在使用int-kafka:producer-configuration标记创建上下文 更新 谢谢你,这很有效。我在应用程序上下文xml中使用以下配置 在我的代码中,使用下面的代码检查获取所需的主题名称kafkaUpdate=channel.send(MessageBuilder.withP
int-kafka:producer-configuration
标记创建上下文
更新
谢谢你,这很有效。我在应用程序上下文xml中使用以下配置
在我的代码中,使用下面的代码检查获取所需的主题名称kafkaUpdate=channel.send(MessageBuilder.withPayload(jsonAuditLog).setHeader(KafkaHeaders.TOPIC,“”).build(),kafkaTimeOut.longValue())
代码正在运行,我看到消息按照我的要求发布到不同的主题,但不确定这是否是rite的方式……您所说的是非常旧的版本。最新的Spring集成卡夫卡
3.0.1
基于Spring卡夫卡2.1.2
,并且已经很长一段时间没有任何生产者配置
考虑为实际的ApacheKafka1.0.0
开发应用程序
新的
有主题表达式
供您使用:
更新
旧版本在
上具有此属性:
感谢Bilan的回复,但我们需要使用旧版本。如果我必须更新SpringKafka和SpringIntegrationforKafka,那么测试将需要一些时间和更多的精力。我试图更新它,但在我看来,我还需要更新应用程序上下文中的其他Spring JAR和Spring-Integration-Kafka.xsd。我在旧版本中找不到支持kafka Template的xsd版本,是否可以动态选择主题名称?请参阅我答案中的更新。在应用程序上下文xml中使用以下配置对我来说确实有意义。检查标题然后使用属性占位符中的静态解析值的点是什么?
<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>