apache-kafka - Spring Kafka - 如何使用具有不同配置的多个侦听器配置单个 ListenerContainerFactory
问题描述
在使用 Spring Boot 自动配置的默认 KafkaListenerContainerFactory 时,是否可以有多个 @KafkaListeners 使用不同的反序列化器和消息转换器?例如,一个监听器使用 JsonDeserializer,另一个监听器使用 BytesDeserializer 和 BytesJsonMessageConverter。那将是什么配置。是否可以通过定义自定义 KafkaListenerContainerFactory 来实现?我也认为应用程序中应该只有一个 KafkaListenerContainerFactory 是正确的,因为它是一个工厂。
解决方案
您可以为每个使用不同的工厂(并@KafkaListener
在@KafkaListener
.
请参阅文档。
@KafkaListener(id = "one", topics = "one")
public void listen1(String in) {
System.out.println("1: " + in);
}
@KafkaListener(id = "two", topics = "two",
properties = "value.deserializer:org.apache.kafka.common.serialization.ByteArrayDeserializer")
public void listen2(byte[] in) {
System.out.println("2: " + new String(in));
}
推荐阅读
- c# - 如何在 C# 的记事本 .txt 文件中添加数据?
- r - 闪亮分类准确率表
- node.js - 如何使用 npm 初始化
我的包裹?找不到命令错误 - python - 无法弄清楚如何从 xml 文件中填充字典
- c++ - 如果我在守护程序初始化中添加延迟,是否会影响启动时加载其他守护程序的方式?
- c# - 组合 await 与 ContinueWith
- spring-amqp - 使用旧 Spring rabbit 1.7.9 将 Spring boot 从 1.5 迁移到 2.1.5 导致以下异常
- java - 不使用 Lines2D 的橡皮筋
- cucumber - 是否可以在 Cucumber-jvm 中预先定义数据表?
- python - 从批处理文件中获取 ModuleNoteFoundError running python (3.7)