You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot的application.yml中配置Kafka的ssl.enabled.protocols

Spring Boot Kafka 配置 SSL 协议的解决方案

方案一:纯 YML 配置(推荐)

Spring Boot Kafka 自动配置支持通过 properties 前缀传递 Kafka 客户端原生配置,无需编写任何代码就能添加 ssl.enabled.protocols:

生产者、消费者及 Admin 统一配置示例

spring:
  kafka:
    # 生产者 SSL 协议配置
    producer:
      properties:
        ssl.enabled.protocols: TLSv1.2,TLSv1.3
    # 消费者 SSL 协议配置
    consumer:
      properties:
        ssl.enabled.protocols: TLSv1.2,TLSv1.3
    # Kafka Admin 客户端 SSL 协议配置(如果用到)
    admin:
      properties:
        ssl.enabled.protocols: TLSv1.2,TLSv1.3

这种方式完全复用 Spring Boot 自动配置的工厂实例,所有原有 YML 配置都会被保留,仅补充缺失的 SSL 协议参数。

方案二:代码补充配置(无需迁移所有配置)

如果因特殊场景需要代码干预,也不用重新定义整个工厂 Bean,只需在自动配置的工厂实例基础上补充配置:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.kafka.core.ConsumerFactory;
import org.springframework.kafka.core.ProducerFactory;

import javax.annotation.PostConstruct;
import java.util.Map;

@Configuration
public class KafkaSslProtocolConfig {

    @Autowired
    private ProducerFactory<?, ?> producerFactory;

    @Autowired(required = false)
    private ConsumerFactory<?, ?> consumerFactory;

    @PostConstruct
    public void addSslProtocolConfig() {
        // 给生产者工厂添加 SSL 协议配置
        Map<String, Object> producerConfigs = producerFactory.getConfigurationProperties();
        producerConfigs.put("ssl.enabled.protocols", "TLSv1.2,TLSv1.3");

        // 给消费者工厂添加 SSL 协议配置(按需启用)
        if (consumerFactory != null) {
            Map<String, Object> consumerConfigs = consumerFactory.getConfigurationProperties();
            consumerConfigs.put("ssl.enabled.protocols", "TLSv1.2,TLSv1.3");
        }
    }
}

该类仅修改自动配置生成的工厂实例的配置项,原有 YML 中的所有配置都会被保留,无需迁移任何配置到代码中。

内容的提问来源于stack exchange,提问作者hevi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:30:05