apache-kafka - ksqldb,问题设置模式注册表
问题描述
我已经在 /etc/ksqldb/ksql-server.properties 文件中的 ksqldb-server 中设置了我的模式注册表,正如他们在文档中所说的那样:
ksql.schema.registry.url=http://myipaddress:8090
但是当我进入我的 ksqldb 容器时:
docker exec -it ksqldb-cli ksql http://ksqldb-server:8088
我尝试运行:
CREATE STREAM tracking WITH (KAFKA_TOPIC='tracking', VALUE_FORMAT='AVRO');
我得到错误:
Cannot create topic 'tracking' with format AVRO without configuring 'ksql.schema.registry.url'
我也尝试过使用以下设置,即使不推荐:
SET 'ksql.schema.registry.url'='http://myipaddress:8090';
但仍然得到同样的错误,不知道我做错了什么。
这是我的 docker-compose 文件:
version: "3.3"
services:
# Kafka/Zookeeper container
divolte-kafka:
image: krisgeus/docker-kafka
restart: always
environment:
ADVERTISED_HOST: divolte-kafka
LOG_RETENTION_HOURS: 1
AUTO_CREATE_TOPICS: "false"
KAFKA_CREATE_TOPICS: tracking:4:1
ADVERTISED_LISTENERS: PLAINTEXT://divolte-kafka:9092,INTERNAL://localhost:9093
LISTENERS: PLAINTEXT://0.0.0.0:9092,INTERNAL://0.0.0.0:9093
SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,INTERNAL:PLAINTEXT
INTER_BROKER: INTERNAL
# Schema Registry
schema-registry:
image: confluentinc/cp-schema-registry:5.5.3
restart: always
depends_on:
- divolte-kafka
ports:
- 8090:8081
environment:
SCHEMA_REGISTRY_HOST_NAME: schema-registry
SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: divolte-kafka:2181
# ksql server
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 cli
ksqldb-cli:
image: confluentinc/ksqldb-cli:0.20.0
restart: always
container_name: ksqldb-cli
depends_on:
- divolte-kafka
- ksqldb-server
entrypoint: /bin/sh
tty: true
解决方案
I have set in ksqldb-server in /etc/ksqldb/ksql-server.properties file
Well, you're never using this file inside Docker
You need to add a variable for it
KSQL_KSQL_SCHEMA_REGISTRY_URL: "schema-registry:8081"
Also, you should use Kafka on the registry, not deprecated Zookeeper, with property KSQL_KAFKASTORE_BOOTSTRAP_SERVERS
推荐阅读
- c# - EF Core - 无法插入具有外键的新条目
- npm - ckeditor-duplicated-modules 在本地测试 CKeditor 5 插件时出错
- python - 在 python 中,我将如何创建文本文件中列出的所有唯一单词的字典。到目前为止,我有这个代码。谢谢
- python - discord.py - FFmpegPCMAudio 使用大量 CPU
- swift - 根据开始日期和给定周数获取周范围
- html - 如何在不使用图像的情况下添加看起来呈波浪状的分区?
- amazon-web-services - (ACM) 通过 DNS 配置验证证书
- javascript - 从json数据中获取php页面中的数据
- python - 有没有一种方法可以使用多标签分类,但当模型仅预测 keras 中的一个标签时认为是正确的?
- google-translate - 如何在 Google Cloud Translation API 中指定性别