Spring Kafka - 如何使用具有不同配置的多个侦听器配置单个 ListenerContainerFactory
Spring Kafka - How to configure a single ListenerContainerFactory with multiple listeners having different configurations
在使用 spring 启动自动配置的默认 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));
}
在使用 spring 启动自动配置的默认 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));
}