【问题标题】:Issue in connecting ksql with kafka of confluent version 3.3.0 in docker在 docker 中将 ksql 与 confluent 版本 3.3.0 的 kafka 连接时出现问题
【发布时间】:2018-09-21 09:32:35
【问题描述】:

我正在通过以下方式设置 ksql-cli 与 confluent 版本 3.3.0

#zookeper
docker run -d -it \
    --net=host \
    --name=zookeeper \
    -e ZOOKEEPER_CLIENT_PORT=32181 \
    confluentinc/cp-zookeeper:3.3.0

#kafka
docker run -d \
    --net=host \
    --name=kafka \
    -e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
    -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
    confluentinc/cp-kafka:3.3.0

#schema-registry
docker run -d \
  --net=host \
  --name=schema-registry \
  -e SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL=localhost:32181 \
  -e SCHEMA_REGISTRY_HOST_NAME=localhost \
  -e SCHEMA_REGISTRY_LISTENERS=http://localhost:8081 \
  confluentinc/cp-schema-registry:3.3.0

我正在以以下方式运行 ksql-cli docker 映像

  docker run -it \
  --net=host \
  --name=ksql-cli \
  -e KSQL_CONFIG_DIR="/etc/ksql" \
  -e KSQL_LOG4J_OPTS="-Dlog4j.configuration=file:/etc/ksql/log4j-rolling.properties" \
  -e STREAMS_BOOTSTRAP_SERVERS=localhost:29092 \
  -e STREAMS_SCHEMA_REGISTRY_HOST=localhost \
  -e STREAMS_SCHEMA_REGISTRY_PORT=8081 \
  confluentinc/ksql-cli:0.5

当我通过以下方式进入容器的 bash 运行 ksql-cli

docker exec -it ksql-cli bash

并以下列方式运行ksql-cli

./usr/bin/ksql-cli local

它给了我以下错误:

正在初始化 KSQL...

无法获取代理信息。 KSQL 无法初始化 AdminCLient。

【问题讨论】:

    标签: docker apache-kafka ksqldb


    【解决方案1】:

    默认情况下,ksql-cli 尝试连接到 localhost:9092 上的 Kafka 代理。看起来您的设置使用了不同的端口,因此您需要在命令行中提供此端口,例如

    ./usr/bin/ksql-cli local --bootstrap-server localhost:32181

    您可能还需要指定架构注册表端口,因此您可能需要使用属性文件,例如:

    ./usr/bin/ksql-cli local --properties-file ./ksql.properties

    ksql.properties 所在的位置:

    bootstrap.servers=localhost:29092 schema.registry.url=localhost:8081

    或者在命令行中同时提供:

    ./usr/bin/ksql-cli local \ --bootstrap-server localhost:29092 \ --schema.registry.url http://localhost:8081

    注意,从 KSQL 版本 4.1 开始,命令和属性会更改名称。 ksql-cli 变成了 ksqllocal 模式消失了——你需要明确地运行一个或两个 ksql-server 节点。 --property-file 变为 --config-fileschema.registry.url 变为 ksql.schema.registry.url

    【讨论】:

    • 我也面临同样的问题。问题不在 ksql-client 上,而是在拒绝启动的 ksql-server 上。不清楚当 ksql 服务器本身未启动时如何/为什么向客户端提供参数会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 2018-12-14
    • 1970-01-01
    • 2020-02-05
    • 2021-07-04
    • 2020-04-11
    • 2021-12-06
    相关资源
    最近更新 更多