如何解决ksql 在 fargate 上部署 ksqldb-server docker-compose 映像时缺少没有默认值的必需配置“bootstrap.servers”
我已设法在 ec2 实例上部署 ksqldb 服务器,使用 msk kafka 作为 kafka 服务器,使用 docker-compose
及其工作正常(能够使用 python Ksql API 客户端连接并访问主题和 msk` 中的流。
version: '2'
services:
ksqldb-server:
image: confluentinc/ksqldb-server:0.14.0
hostname: ksqldb-server
container_name: ksqldb-server
ports:
- "8088:8088"
environment:
Ksql_LISTENERS: http://0.0.0.0:8088
Ksql_BOOTSTRAP_SERVERS: b-1.ksql-kafka-tesing.boqxnyhyk.c2.kafka.ap-south-1.amazonaws.com:9092,b-2.ksql-kafka-tesing.byuuttoqxnk.c2.kafka.ap-south-1.amazonaws.com:9092,b-3.ksql-kafka-tesing.boqxyytuytutnk.c2.kafka.ap-south-1.amazonaws.com:9092
Ksql_Ksql_LOGGING_PROCESSING_STREAM_AUTO_CREATE: "true"
Ksql_Ksql_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: "true"
但是当我在 AWS FARGET 上部署下面这个 docker 镜像时,它会使用适当的集群和任务定义,它会在 cloudwatch 日志中提供以下错误日志
2021-01-19T21:16:50.425+05:30 ssl.truststore.type = JKS
2021-01-19T21:16:50.425+05:30 (io.confluent.ksql.util.KsqlConfig:354)
2021-01-19T21:16:53.417+05:30 [2021-01-19 15:46:53,413] ERROR Failed to start Ksql (io.confluent.ksql.rest.server.KsqlServerMain:68)
2021-01-19T21:16:53.417+05:30 java.lang.RuntimeException: Failed to get Kafka cluster information
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.services.KafkaClusterUtil.getKafkaClusterId(KafkaClusterUtil.java:107)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.rest.server.KsqlRestApplication.buildApplication(KsqlRestApplication.java:605)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.rest.server.KsqlServerMain.createExecutable(KsqlServerMain.java:161)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.rest.server.KsqlServerMain.main(KsqlServerMain.java:61)
2021-01-19T21:16:53.417+05:30 Caused by: org.apache.kafka.common.config.ConfigException: Missing required configuration "bootstrap.servers" which has no default value.
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.common.config.ConfigDef.parseValue(ConfigDef.java:478)
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:468)
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:108)
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:142)
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.clients.admin.AdminClientConfig.<init>(AdminClientConfig.java:233)
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.clients.admin.Admin.create(Admin.java:74)
2021-01-19T21:16:53.417+05:30 at org.apache.kafka.streams.processor.internals.DefaultKafkaClientsupplier.getAdmin(DefaultKafkaClientsupplier.java:41)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.services.ServiceContextFactory.lambda$create$1(ServiceContextFactory.java:58)
2021-01-19T21:16:53.417+05:30 at com.google.common.base.suppliers$NonSerializableMemoizingsupplier.get(suppliers.java:164)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.services.DefaultServiceContext$Memoizedsupplier.get(DefaultServiceContext.java:176)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.services.DefaultServiceContext.getAdminClient(DefaultServiceContext.java:116)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.services.LazyServiceContext.getAdminClient(LazyServiceContext.java:33)
2021-01-19T21:16:53.417+05:30 at io.confluent.ksql.services.KafkaClusterUtil.getKafkaClusterId(KafkaClusterUtil.java:102)
我还在 farget 容器中启用了端口 8083、8088、80,同时在容器中添加了 docker 镜像。
无法找出为什么同一个 docker compose 映像没有在 farget 上运行,而是在 ec2 机器上运行而没有错误。
有人可以帮我吗?我也是 ksql 和 aws farget 的新手。提前致谢
PS:我已经按照本教程在 farget Deploy Docker Image on Farget using ECR and ECS
上部署了一个 docker 镜像解决方法
docker-compose 中的那些环境变量没有从容器中的图像中读取。在farget部署中添加容器时必须特别提及环境变量和值。
完美运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。