当前位置: 首页 > 知识库问答 >
问题:

YAML文件的Kafka Producer SSL属性

孙永思
2023-03-14

这是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制作人配置

@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

共有1个答案

辛盛
2023-03-14

您正在创建自己的ProducerFactorybean,因此不使用application.yml中的属性;Boot在自动配置其bean时使用这些属性。

您需要在producerFactory()bean中自己设置SSL属性。

 类似资料:
  • 这是我的项目结构 我在应用程序中有这个 在我的endpoint中,我有以下内容 在任何函数中,我都可以访问类似于的内容,它工作正常,但对于文件类型,它甚至没有编译,我收到以下错误: 创建名为'配置终结点'的bean时出错:注入自动生成的依赖项失败;嵌套异常是java.lang.IllegalArgumentExc0019:无法解决占位符'document.templates.filetypes'中

  • 我用Spring靴。我想使用YAML而不是属性来编写配置。 问题是应用程序继续使用application.properties文件,如果我删除它,就不会加载任何配置。 有人能帮帮我吗?这是我的主要档案 这是我的

  • 在前面的课程中,我们在安装 kubernetes 集群的时候使用了一些 YAML 文件来创建相关的资源,但是很多同学对 YAML 文件还是非常陌生。所以我们先来简单看一看 YAML 文件是如何工作的,并使用 YAML 文件来定义一个 kubernetes pod,然后再来定义一个 kubernetes deployment吧。 YAML 基础 它的基本语法规则如下: 大小写敏感 使用缩进表示层级关

  • 这是我第一次使用YAML文件,所以我首先想到的是找到任何可以帮助我解析文件的库。 我找到了两个库,YamlBean和snakeyaml。我不确定我要用哪一个。 下面是我试图解析的文件的一个示例: 该文件将动态更改,所以我不知道该文件将包含多少用户或组。 有人能帮我开始吗?最好的图书馆是什么?YamlBean还是Snakeyaml? 我想,我需要将这些信息保存在一个可以轻松重复的东西中。

  • 主要内容:节点锚点,节点标签,节点内容每个表示节点包括两个主要特征,称为锚和标记。可以使用节点内容指定节点属性,从字符流中省略。 节点表示的基本示例如下 - 节点锚点 属性表示将来参考的节点。 节点中YAML表示的字符流用符号表示。 YAML处理器不需要保留锚名称以及其中包含的表示细节。以下代码解释了这一点 - 锚节点生成的YAML输出如下所示 - 节点标签 属性表示完全定义节点的本机数据结构的类型。 标签用()指示符表示。 标签被视