我正在使用spring-kafka-2.2.7.RELEASE,并尝试在方法级别使用@KafkaListener并与ConcurrentKafkaListenerContainerFactory一起创建使用者。根据我的理解,这将创建一个ConcurrentMessageListenerContainer。
是否有一个拦截器来拦截此容器的创建,以便我可以注入自定义逻辑来构建groupId?
如果我有两种使用@KafkaListener来消费两个不同主题的方法,它将创建两个ConcurrentMessageListenerContainers吗?
答案 0 :(得分:1)
如果您有@KafkaListener(id = "foo", ..., autoStartup = "false")
,则可以自动为KafkaListenerEndpointRegistry
接线,然后...
registry.getListenerContainer("foo").getContainerProperties().setGroupId(...);
registry.getListenerContainer("foo").start();
但是,您可以简单地使用
@KafkaListener(... groupId "${some.property}")
或
@KafkaListener(... groupId "#{someSpelExpression}")
如果您只想设置组ID。