首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DLT消息消耗

DLT消息消耗
EN

Stack Overflow用户
提问于 2021-10-14 13:15:16
回答 1查看 240关注 0票数 0

我们使用的是Spring kafka 2.7非阻塞重试机制。在Spring Kafka重试机制中,kafka监听器消费来自main topic、Retry Topic和DLT topic的消息,我们只希望监听器消费来自main和retry topic的消息。

有没有一种简单的设置方法?

因为我们不希望同一个消费者处理DLT消息。DLT也会被另一个进程使用,以发送请求的通知。

代码语言:javascript
复制
// our configuration

 @Bean
  public ConcurrentKafkaListenerContainerFactory<String, Object> kafkaListenerContainerFactory() {

    ConcurrentKafkaListenerContainerFactory<String, Object> factory
        = new ConcurrentKafkaListenerContainerFactory<>();
    factory.setConsumerFactory(consumerFactory());
    return factory;
  }


@Bean
  public RetryTopicConfiguration retryTopicConfiguration(KafkaTemplate<String, Object> template) {

    List<Class<? extends Throwable>> throwableList = Arrays.asList(IllegalArgumentException.class,
        IllegalAccessException.class);

    return RetryTopicConfigurationBuilder
        .newInstance()
        .dltHandlerMethod(XYZ.class, "xyz")
        .exponentialBackoff(delayMs, backoffMultiplier, maxIntervalInMs)
        .maxAttempts(retryAttempt)
        .notRetryOn(throwableList)
        .doNotAutoCreateRetryTopics()
        .listenerFactory(kafkaListenerContainerFactory())
        .setTopicSuffixingStrategy(TopicSuffixingStrategy.SUFFIX_WITH_INDEX_VALUE)
        .create(template);
  }
EN

回答 1

Stack Overflow用户

发布于 2021-10-18 19:21:21

只需删除.dltHandlerMethod(XYZ.class, "xyz")即可。

编辑

这仍将创建一个默认的DLT处理程序,该处理程序将只记录记录。

您可以在“其他”消费者中使用不同的组,也可以手动启动容器( DLT容器除外)。

@KafkaListener上设置autoStartup="false";然后添加以下内容...

代码语言:javascript
复制
@Bean
ApplicationRunner runner(KafkaListenerEndpointRegistry registry) {
    return args -> {
        registry.getListenerContainerIds().forEach(id -> {
            if (!id.endsWith("-dlt")) {
                registry.getListenerContainer(id).start();
            }
        });
    };
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69571401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档