Kafka 集成测试,无法设置 SASL 启用机制

问题描述

我正在使用 TestContainers 进行集成测试并尝试启用 SASL,以便我可以保留相同的配置文件而不是重复的代码

  public static KafkaContainer kafka =
      new KafkaContainer(DockerImageName.parse(KAFKA_TEST_IMAGE))
              .withNetwork(Network.newNetwork())
              .withEnv("KAFKA_AUTO_CREATE_TOPICS_ENABLE","false")
              .withEnv("KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND","true")
              .withEnv("KAFKA_SUPER_USERS","User:OnlySuperUser")
//              .withEnv("KAFKA_CFG_SASL_ENABLED_MECHANISMS","PLAIN")
//              .withEnv("KAFKA_CFG_SASL_MECHANISM_INTER_broKER_PROTOCOL","SASL_PLAINTEXT")
              .withEnv("KAFKA_SASL_ENABLED_MECHANISMS","PLAIN,SASL_PLAINTEXT")
              .withEnv("KAFKA_SASL_JAAS_CONfig",JAAS_CONfig);

这是我正在玩的,但出现以下错误

org.apache.kafka.common.errors.IllegalSaslStateException: Unexpected handshake request with client mechanism PLAIN,enabled mechanisms are []

似乎启用机制 (PLAIN) 被完全忽略了。为什么是这样?我查看了文档,但没有看到如何在容器中配置它。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)