我们在应用程序中使用spring-kafka(1.3.2.RELEASE)。 现在,我们在配置中使用了auto-commit = true。 由于相同,我们遇到了一些问题,例如多次读取相同的偏移量,因此我们现在计划进行手动提交,并可能将读取的偏移量保存在某些外部存储库中。
我们还需要处理卡夫卡的重新平衡。 我已经阅读了文档,在纯Java中,使用ContainerProperties配置了重新平衡侦听器。 setConsumerRebalanceListener(rebalanceListner);
https://docs.spring.io/spring-kafka/reference/htmlsingle/#_very_very_quick
我正在搜索使用Spring Java Configurations配置Rebalance列表器,但是找不到。 请让我知道。
谢谢
答案 0 :(得分:2)
如果我对您的理解正确,那么您想要以下内容:
@Bean
ContainerProperties containerProperties() {
ContainerProperties containerProperties = new ContainerProperties(SOME_TOPIC);
containerProperties.setConsumerRebalanceListener(myConsumerRebalanceListener());
// Other properties set
return containerProperties;
}
@Bean
ConsumerRebalanceListener myConsumerRebalanceListener() {
return new ConsumerRebalanceListener() {
@Override
public void onPartitionsRevoked(Collection<TopicPartition> partitions) {
}
@Override
public void onPartitionsAssigned(Collection<TopicPartition> partitions) {
}
}
}
您可以在containerProperties
实例中使用该KafkaMessageListenerContainer
bean,也可以在myConsumerRebalanceListener
中填充该AbstractKafkaListenerContainerFactory.getContainerProperties()
。