docker - Kafka 集成测试,无法设置启用 SASL 的机制
问题描述
我正在使用 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)被完全忽略了。为什么是这样?我检查了文档,但看不到如何在容器中配置它。
解决方案
推荐阅读
- javascript - 当鼠标离开另一个站点时显示弹出窗口
- ios - React Native 应用程序在发布模式下崩溃,但在调试模式下工作正常
- c# - 如何在 XAML 中使用 CalcBinding
- swiftui - 使用 SwiftUI 如何从 watchOS 中的通知单击打开特定视图
- angular - 刷新时没有得到“路由器事件”
- php - 如何使用 .htaccess 隐藏页面扩展名和 $_GET 值?
- ios - 故事板 iOS 中的 Chromecast miniview
- python - 创建引用其自己先前值的列的有效方法
- kubernetes - Why memory usage is greater than what I set in Kubernetes's node?
- asp.net-core - 成功登录后,HttpContext.User.Claims 和 IHttpContextAccessor 都返回空值