[英]Send message into runtime defined Kafka Topic
我有一个使用KafkaTemplate
将消息发送到不同 Kafka 主题的代码。 主题名称是从 API 收到的,无法提前知道,代码如下:
var message = MessageBuilder.fromMessage(message)
.setHeader(KafkaHeaders.TOPIC, targetTopic)
.build();
kafkaTemplate.send(message);
现在我想重构现有的方法来使用 Spring Cloud Stream 但它需要在application.properties
中定义我不知道的主题名称。
spring.cloud.stream.bindings.output.binder=kafka
spring.cloud.stream.bindings.output.destination=user-events
我用活页夹方法发送消息的代码如下所示:
// enable bindning in config class
@EnableBinding(KafkaBinding.class)
// interfaces with output() method
@Output("output")
MessageChannel output();
// sending message to topic from application.properties
kafkaBinding.output().send(message)
如何使用带有活页夹的方法在运行时设置主题名称?
@EnableBinding
已被弃用,取而代之的是更新的、首选的功能样式。
您可以使用StreamBridge
发送到动态目的地。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.