【问题标题】:Confluent Schema Registry unable to connect to Kafka containerConfluent Schema Registry 无法连接到 Kafka 容器
【发布时间】:2021-10-12 03:06:09
【问题描述】:

我正在尝试使用 Zookeper、Kafdrop 和 Schema Registry 运行 Kafka 服务,我通过在一个容器中安装 Kafka、Zookeper 和 Kadrop 然后在另一个容器中安装 Confluent Schema Registry(带有自己的 Kafka、Zookeeper、 Ksql Server 和 Rest Proxy),但是试图让 kafdrop 读取模式注册表不起作用,所以现在我想只安装一个带有 Kafka、Zookeeper、Kafdrop 和模式注册表的容器,即使一切都安装成功,模式注册表每 10 秒左右重新启动一次,我无法联系服务 (localhost:8085) 来添加我的模式,所以我想知道是否可以在 Confluent 服务套件之外运行 Confluent Schema Registry,在这里是我的 YAML 文件:

version: '2'
services:
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=127.0.0.1
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=INTERNAL://:29092,EXTERNAL://:9092
      - KAFKA_ADVERTISED_LISTENERS=INTERNAL://kafka:29092,EXTERNAL://localhost:9092
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=INTERNAL
      - KAFKA_SCHEMA_REGISTRY_URL=schemaregistry:8085
    depends_on:
      - zookeeper

  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=zookeeper
   
  schemaregistry:
    image: confluentinc/cp-schema-registry:6.2.0
    restart: always
    depends_on:
      - zookeeper
    environment:
      SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: "zookeeper:2181"
      SCHEMA_REGISTRY_HOST_NAME: schemaregistry
      SCHEMA_REGISTRY_LISTENERS: "http://0.0.0.0:8085"
    ports:
      - 8085:8085

  kafdrop:
    image: obsidiandynamics/kafdrop
    container_name: kafdrop
    restart: "no"
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "kafka:29092"
      JVM_OPTS: "-Xms16M -Xmx48M -Xss180K -XX:-TieredCompilation -XX:+UseStringDeduplication -noverify"
      SCHEMAREGISTRY_CONNECT: schemaregistry:8085
    depends_on:
      - "kafka"

【问题讨论】:

  • 没有“Confluent Kafka”这样的东西。如果您提供了容器崩溃的日志,您会得到更好的答案。除此之外,Confluent 在 github 中提供了一个多合一的 Compose 文件,它工作正常,你需要做的就是添加 kafdrop 到它

标签: apache-kafka docker-compose confluent-schema-registry


【解决方案1】:

事实证明,Schema Registry 无法连接,因为 Kafka 没有使用“PLAINTEXT”作为内部代理侦听器名称,这是与 Kafdrop 一起使用的 YAML 版本,在将消息反序列化到 AVRO 时也可以使用:

version: '2'
services:
  kafka:
    image: wurstmeister/kafka
    container_name: kafka
    ports:
      - "9092:9092"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=127.0.0.1
      - KAFKA_ADVERTISED_PORT=9092
      - KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181
      - KAFKA_LISTENERS=PLAINTEXT://:29092,EXTERNAL://:9092
      - KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:29092,EXTERNAL://localhost:9092
      - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,EXTERNAL:PLAINTEXT
      - KAFKA_INTER_BROKER_LISTENER_NAME=PLAINTEXT
      - KAFKA_SCHEMA_REGISTRY_URL=schemaregistry:8085

    depends_on:
      - zookeeper

  zookeeper:
    image: wurstmeister/zookeeper
    container_name: zookeeper
    ports:
      - "2181:2181"
    environment:
      - KAFKA_ADVERTISED_HOST_NAME=zookeeper
   
  schemaregistry:
    image: confluentinc/cp-schema-registry:6.2.0
    restart: always
    depends_on:
      - zookeeper
    environment:
      SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL: "zookeeper:2181"
      SCHEMA_REGISTRY_HOST_NAME: schemaregistry
      SCHEMA_REGISTRY_LISTENERS: "http://0.0.0.0:8085"
    ports:
      - 8085:8085

  kafdrop:
    image: obsidiandynamics/kafdrop
    container_name: kafdrop
    restart: "no"
    ports:
      - "9000:9000"
    environment:
      KAFKA_BROKERCONNECT: "kafka:29092"
      JVM_OPTS: "-Xms16M -Xmx48M -Xss180K -XX:-TieredCompilation -XX:+UseStringDeduplication -noverify"
      SCHEMAREGISTRY_CONNECT: http://schemaregistry:8085
    depends_on:
      - "kafka"

【讨论】:

    【解决方案2】:

    你的两个 YAML 都不正确 你在动物园管理员中有: KAFKA_ADVERTISED_HOST_NAME

    并且在模式注册表中,您在 kafkastore 中为 zookeeper 端口 2181....

    【讨论】:

    猜你喜欢
    • 2019-07-21
    • 2021-05-11
    • 2019-06-23
    • 2019-06-17
    • 2018-08-02
    • 1970-01-01
    • 2019-03-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多