apache-kafka - 如何为 sasl 普通 kafka 集群运行模式注册表容器
问题描述
我想在 AWS ECS 上运行 cp-schema-registry 映像,所以我试图让它在本地的 docker 上运行。我有这样的命令:
docker run -e SCHEMA_REGISTRY_HOST_NAME=schema-registry \
-e SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS="1.kafka.address:9092,2.kafka.address:9092,3.kafka.address:9092" \
-e SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL=SASL_PLAINTEXT \
confluentinc/cp-schema-registry:5.5.3
(我已经替换了 kafka 网址)。
我的消费者/生产者使用参数连接到集群:
["sasl.mechanism"] = "PLAIN"
["sasl.username"] = <username>
["sasl.password"] = <password>
文档似乎表明我可以使用这些参数创建一个文件,但我不知道如何将其传递给 docker run 命令。这可以做到吗?
解决方案
感谢 OneCricketeer 对 var 的上述帮助SCHEMA_REGISTRY_KAFKASTORE_SASL_JAAS_CONFIG
。该命令最终是这样的(我添加了端口 8081:8081 以便我可以使用 curl 进行测试):
docker run -p 8081:8081 -e SCHEMA_REGISTRY_HOST_NAME=schema-registry \
-e SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS="1.kafka.broker:9092,2.kafka.broker:9092,3.kafka.broker:9092" \
-e SCHEMA_REGISTRY_KAFKASTORE_SECURITY_PROTOCOL=SASL_SSL \
-e SCHEMA_REGISTRY_KAFKASTORE_SASL_MECHANISM=PLAIN \
-e SCHEMA_REGISTRY_KAFKASTORE_SASL_JAAS_CONFIG='org.apache.kafka.common.security.plain.PlainLoginModule required username="user" password="pass";' confluentinc/cp-schema-registry:5.5.3
然后测试curl localhost:8081/subjects
并获得[]
作为响应。
推荐阅读
- python - 有没有办法使用机器学习来派生与段落相对应的标签?
- html - 如何使动态房间布局易于访问
- c# - 获取 Http 客户端的配置字符串
- twitter-bootstrap - 页面滚动到顶部,而不是使用 Vue 和 Bootstrap 从顶部开始
- html - Flex 项目响应问题
- android - 如何在 Android Studio 的 Lottie XML 代码中修复此错误?
- python - 使用 pip 在 Python 3.8.5 上安装 Pytorch 时出现问题
- oracle-ebs - 在 Oracle 应用程序中加入 hr_organization_information 和 mtl_parameters
- sql - 选择的排序结果
- r - 无法理解 describe() 函数输出含义