ksqldb配置Schema Registry后创建AVRO流仍提示未配置对应url问题
问题根源
- 你在宿主机修改的
/etc/ksqldb/ksql-server.properties和运行中的ksqldb-server容器完全隔离,容器不会读取宿主机的配置文件,所以配置未生效。 - 你的docker-compose配置中,ksqldb-server的环境变量缺少schema registry的相关配置,容器启动时没有加载到对应的配置项。
- 会话级配置不生效的原因大概率是你填写的
http://myipaddress:8090地址在ksqldb-server容器内部无法正常访问,导致配置虽然设置了但连通性校验失败。
解决步骤
- 修改docker-compose.yml中ksqldb-server的environment配置,新增schema registry地址,同docker网络内直接用服务名访问即可,无需走宿主机端口映射:
ksqldb-server: image: confluentinc/ksqldb-server:0.20.0 restart: always hostname: ksqldb-server container_name: ksqldb-server depends_on: - divolte-kafka ports: - "8088:8088" environment: KSQL_LISTENERS: http://0.0.0.0:8088 KSQL_BOOTSTRAP_SERVERS: divolte-kafka:9092 KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: "true" KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: "true" # 新增下面这行配置 KSQL_KSQL_SCHEMA_REGISTRY_URL: "http://schema-registry:8081"
- 重新启动ksqldb-server服务加载配置:
docker-compose up -d --force-recreate ksqldb-server
- 进入ksql cli后先执行以下命令验证配置是否生效:
SHOW PROPERTIES;
在返回结果中查找ksql.schema.registry.url项,确认值为http://schema-registry:8081即可。
4. 重新执行创建流的语句,即可正常创建。
内容的提问来源于stack exchange,提问作者Soufiane Odf
相关产品推荐
相关产品推荐

