【发布时间】:2020-11-26 12:42:30
【问题描述】:
这是 YAML 文件中的 Kafka Producer 属性。 当我启用 SSL 时,我的 kafka 生产者不起作用。它无法识别代理上的主题。但是当我使用 PLAINTEXT 时,我的 kafka 生产者工作正常。 我是否缺少 SSL 配置的内容。
PS:对于 SSL 和 PLAINTEXT,Bootsrap 服务器是不同的。
spring:
kafka:
producer:
bootstrap-servers: <server name>
properties:
acks: all
retries: 3
retry.backoff.ms: 200000
ssl.protocol: SSL
ssl.endpoint.identification.algorithm: https
ssl:
keystore-location: keystore.jks
keystore-password: password
这是我的 Kafka Producer 配置
@Bean
public ProducerFactory<String, JsonMessage> producerFactory() {
Map<String, Object> config = new HashMap<>();
config.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, bootstrapServers);
config.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);
config.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, JsonSerializer.class);
config.put(ProducerConfig.ACKS_CONFIG, acks);
config.put(ProducerConfig.RETRIES_CONFIG, retries);
config.put(ProducerConfig.RETRY_BACKOFF_MS_CONFIG, retryBackoffMs);
return new DefaultKafkaProducerFactory<>(config);
}
@Bean
public KafkaTemplate<String, JsonMessage> kafkaTemplate() {
return new KafkaTemplate<>(producerFactory());
}
这是在 spring boot 控制台上为 kafka prodcuer 返回的值
ssl.keystore.location = null
ssl.keystore.password = null
ssl.keystore.type = JKS
ssl.protocol = TLS
ssl.provider = null
ssl.secure.random.implementation = null
【问题讨论】:
标签: spring-boot apache-kafka spring-kafka kafka-producer-api