具有弹簧配置的KafkaRebalancer句柄

时间:2018-10-15 09:33:27

标签: apache-kafka spring-kafka

我们在应用程序中使用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列表器,但是找不到。 请让我知道。

谢谢

1 个答案:

答案 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()