代码之家  ›  专栏  ›  技术社区  ›  Alan Gaytan

如何在Springboot YML文件中定义用户和密码?

  •  0
  • Alan Gaytan  · 技术社区  · 5 年前

    我已经安装了kafka并将用户和密码定义为sasl ou纯文本协议,我在控制台中做了一些例子,我可以向主题发送消息,并使用它们各自的凭据接收这些消息,现在我需要在我的Spring引导应用程序中复制该配置,

    这是我的application.yml文件:

    server:
      port: 65498
    spring:
      kafka:
        bootstrap-servers: ip:9092
        properties:
          security:
            protocol: SASL_PLAINTEXT
          sasl:
            mechanism: PLAIN
            jaas:
              config: org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="admin-secret";
        producer:
          value-serializer: org.apache.kafka.common.serialization.StringSerializer
    

    应用程序启动良好,但当我尝试发送消息时,会引发以下错误:

    org.apache.kafka.clients.NetworkClient   : [Producer clientId=producer-1] Connection to node -1 could not be established. Broker may not be available.
    

    我注意到的一件事是,如果我不将producer.properties传递给控制台中的producer,它会引发类似的错误:

    WARN [Producer clientId=console-producer] Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected (org.apache.kafka.clients.NetworkClient)
    

    有人能帮我解决这个问题吗?,

    事先谢谢。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Alan Gaytan    5 年前

    我找到了解决方案,我的错误是在kafka的server.properties中定义了 advertised.listeners 作为 SASL_PLAINTEXT://localhost:9092 所以我的客户机尝试使用localhost连接,所以我将localhost更改为主机IP,它就工作了!