Spring Cloud Stream中的批处理模式和自定义错误处理

时间:2017-03-29 07:50:14

标签: spring-cloud-stream spring-kafka

在我开始使用Spring Cloud Stream之前,我使用的是Spring-Kafka,它支持批量使用和自定义错误处理。请注意此代码段的最后两行:

        ConcurrentKafkaListenerContainerFactory<String, byte[]> factory = new ConcurrentKafkaListenerContainerFactory<>();
    factory.setConcurrency(this.consumerConfigurationProperties.getConsumer().get(TOPIC_AG_TASK_EMPP).getConcurrency());
    factory.setConsumerFactory(consumerFactory);
    factory.setMessageConverter(avroMessageConverter);
    factory.getContainerProperties().setPollTimeout(this.consumerConfigurationProperties.getConsumer().get(TOPIC_AG_TASK_EMPP).getPollTimeout());
    factory.getContainerProperties().setPauseEnabled(true);
    factory.getContainerProperties().setAckMode(AbstractMessageListenerContainer.AckMode.BATCH);
    factory.getContainerProperties().setErrorHandler(dlqAGTaskErrorHandler);

然而,使用Spring Cloud Stream我找不到如何配置它。我只能找到这些配置属性:

  

spring.cloud.stream.kafka.bindings.input.consumer.autoCommitOffset,enableDlq

因此,它是否(可能)注册自定义错误处理程序并在Spring Cloud Stream中将AckMode设置为BATCH?

感谢您的支持。

1 个答案:

答案 0 :(得分:0)

目前,我们尚未在Spring Cloud Stream Level支持这些选项。以下问题应在实施后提供等效选项(可能只要Chelsea.RC1):

https://github.com/spring-cloud/spring-cloud-stream-binder-kafka/issues/70

https://github.com/spring-cloud/spring-cloud-stream/issues/538