要使用哪个批处理错误处理程序?

uwopmtnx  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(529)

我刚开始使用SpringKafka2.6.4。我创建了按批轮询消息的消费者工厂:

  1. @Bean
  2. public ConcurrentKafkaListenerContainerFactory<String, String>
  3. kafkaListenerContainerFactory(MeterRegistry meterRegistry) {
  4. ConcurrentKafkaListenerContainerFactory<String, String> factory =
  5. new ConcurrentKafkaListenerContainerFactory<>();
  6. factory.setConsumerFactory(consumerFactory());
  7. factory.setConcurrency(kafkaProperties.getTopicConcurrency());
  8. factory.setBatchListener(true);
  9. factory.getContainerProperties().setAckMode(ContainerProperties.AckMode.BATCH);
  10. return factory;
  11. }

现在,我想定义适当的错误处理程序,使使用者停留在失败的记录上,而不是轮询下一批。
我应该使用哪个错误处理程序?
谢谢。

webghufk

webghufk1#

这个 RecoveringBatchErrorHandler (https://docs.spring.io/spring-kafka/docs/current/reference/html/#recovering-batch eh)现在是首选的(自2.5以来是默认的)批处理错误处理程序。侦听器可以抛出特定的异常,以指示批处理中的哪个记录失败。
还有一个 RetryingBatchErrorHandler (https://docs.spring.io/spring-kafka/docs/current/reference/html/#retrying-批次eh)。

相关问题