kafka producer yaml文件的ssl属性

i5desfxk  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(468)

这是yaml文件中的kafka producer属性。当我启用ssl时,我的kafka producer无法工作。它无法识别代理上的主题。但是当我使用纯文本时,我的kafka producer可以正常工作。我缺少ssl配置。
ps:bootsrap服务器对于ssl和纯文本是不同的。

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制作人

@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
nhaq1z21

nhaq1z211#

你在创造你自己的 ProducerFactory bean中的属性 application.yml 未被使用;引导在自动配置bean时使用这些属性。
您需要在您的应用程序中自己设置ssl属性 producerFactory() 豆子。

相关问题