YAML 文件的 Kafka Producer SSL 属性
Kafka Producer SSL properties for YAML file
这是 YAML 文件中的 Kafka Producer 属性。
当我启用 SSL 时,我的 kafka 制作人不会 work.Its 无法识别代理上的主题。但是当我使用 PLAINTEXT 时,我的 kafka 制作人可以正常工作。
我是否缺少 SSL 配置的内容。
PS: Bootsrap 服务器对于 SSL 和 PLAINTEXT 是不同的。
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 启动控制台
上为 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
您正在创建自己的 ProducerFactory
bean,因此未使用 application.yml
中的属性; Boot 在自动配置其 bean 时使用这些属性。
您需要自己在 producerFactory()
bean 中设置 SSL 属性。
这是 YAML 文件中的 Kafka Producer 属性。 当我启用 SSL 时,我的 kafka 制作人不会 work.Its 无法识别代理上的主题。但是当我使用 PLAINTEXT 时,我的 kafka 制作人可以正常工作。 我是否缺少 SSL 配置的内容。
PS: Bootsrap 服务器对于 SSL 和 PLAINTEXT 是不同的。
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 启动控制台
上为 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
您正在创建自己的 ProducerFactory
bean,因此未使用 application.yml
中的属性; Boot 在自动配置其 bean 时使用这些属性。
您需要自己在 producerFactory()
bean 中设置 SSL 属性。