【问题标题】:how to set adminTimeout value with @EmbeddedKafka Annotation (junit5)?如何使用@EmbeddedKafka Annotation (junit5) 设置 adminTimeout 值?
【发布时间】:2022-01-26 11:01:51
【问题描述】:

在使用并行 gradle 测试 (org.gradle.parallel=true) 时,使用 junit5 和 @EmbeddedKafka 注释最小化整体测试执行时间(我需要对超过 20 个不同的基于 kafka 的微服务进行集成测试;使用并行测试允许我将执行时间除以 10),我开始尝试超时异常作为 EmbeddedKafkaBroker 的 createTopics 方法的一部分。
通过为 EmbeddedKafkaBroker 的 adminTimeout 成员设置自定义值可以轻松解决此问题...问题是我在使用 junit5 和 @EmbeddedKafka 注释时看不到如何实现此目标...有什么建议吗?
非常感谢您的专业知识和时间。
最好的问候

【问题讨论】:

    标签: spring-kafka spring-kafka-test


    【解决方案1】:

    EmbeddedKafkaBroker的方法:

    /**
     * Set the timeout in seconds for admin operations (e.g. topic creation, close).
     * Default 30 seconds.
     * @param adminTimeout the timeout.
     * @since 2.2
     */
    public void setAdminTimeout(int adminTimeout) {
    

    只是没有暴露在@EmbeddedKafka中。

    请随意提出 GH 问题,以便我们考虑在未来添加它。

    作为一种解决方法,您可以手动设置此类嵌入式代理: 私有静态 EmbeddedKafkaBroker EmbeddedKafka;

    @BeforeAll
    static void setup() {
        embeddedKafka = new EmbeddedKafkaBroker(1, true, topic1, topic2);
        embeddedKafka.setAdminTimeout(100);
        embeddedKafka.afterPropertiesSet();
    }
    
    @AfterAll
    static void tearDown() {
        embeddedKafka.destroy();
    }
    

    【讨论】:

    猜你喜欢
    • 2021-07-03
    • 2017-07-01
    • 2022-10-19
    • 2019-06-24
    • 2020-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-12-10
    • 1970-01-01
    相关资源
    最近更新 更多