首页 > 解决方案 > 有什么方法可以防止 Spring boot 在连接到 Kafka 时为 client-id 添加后缀?

问题描述

我正在使用带有相关版本的 spring-kafka 的 spring boot 2.5.4。Spring boot 为配置的 client-id 添加了后缀。例如,如果你在 application.properties 中设置这个配置:spring.kafka.client-id=siavash

您会看到它使用 siavash-0 与代理进行通信,文档中也提到了这一点:在此页面中搜索单词“suffix”

有什么办法可以防止spring boot添加这个后缀?或禁用它?

标签: javaspring-bootapache-kafkakafka-consumer-apispring-kafka

解决方案


ConcurrentMessageListenerContainer...

    /**
     * Set to false to suppress adding a suffix to the child container's client.id when
     * the concurrency is only 1.
     * @param alwaysClientIdSuffix false to suppress, true (default) to include.
     * @since 2.2.14
     */
    public void setAlwaysClientIdSuffix(boolean alwaysClientIdSuffix) {
        this.alwaysClientIdSuffix = alwaysClientIdSuffix;
    }
@Component
class Customizer {

    Customizer(ConcurrentKafkaListenerContainerFactory<?, ?> factory) {
        factory.setContainerCustomizer(container -> container.setAlwaysClientIdSuffix(false));
    }

}

推荐阅读