【问题标题】:Configuring a single and custom retry-topic for non-blocking retries in Spring Kafka在 Spring Kafka 中为非阻塞重试配置单个自定义重试主题
【发布时间】:2023-03-12 15:17:01
【问题描述】:

我正在测试 Spring Kafka 2.7 中的新功能以进行非阻塞重试。我有一个固定的重试主题,它已经给出并以我公司规定的某个方案命名,没有 DLT 主题。我想使用固定的退避策略配置重试策略,没有 DLT,但使用我的单个重试主题。我找不到用RetryTopicConfiguration 配置它的方法。在RetryTopicConfiguration 中,重试主题的名称是通过在主主题名称后面附加一个后缀(取决于TopicSuffixingStrategy)来构造的。有没有办法直接设置retry-topic?

【问题讨论】:

    标签: spring-kafka


    【解决方案1】:

    the documentation

    自定义命名策略

    更复杂的命名策略可以通过注册一个实现RetryTopicNamesProviderFactory的bean来完成。默认实现是SuffixingRetryTopicNamesProviderFactory,可以通过以下方式注册不同的实现:

    @Bean
    public RetryTopicNamesProviderFactory myRetryNamingProviderFactory() {
        return new CustomRetryTopicNamesProviderFactory();
    }
    

    【讨论】:

    • 感谢您的回答。我实现了一个自定义RetryTopicNamesProviderFactory,它返回一个名为myretrytopic 的固定主题。但是,现在当我使用自定义 bean 运行应用程序时出现以下异常。 java.lang.IllegalStateException: Duplicate key myretrytopic (attempted merging values DestinationTopic{destinationName='myretrytopic', ...
    • 您似乎也将主题声明为 NewTopic - 删除该 bean。
    猜你喜欢
    • 1970-01-01
    • 2022-10-09
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 2023-02-25
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多