首页 > 解决方案 > 无法在模式注册表 docker 和 kafka 代理之间建立连接

问题描述

我正在使用以下代码运行模式注册表服务器:

version: "2.2"
services:
    schema-registry:
        container_name: schema-registry
        image: confluentinc/cp-schema-registry:5.5.0
        restart: always
        volumes:
          - ./config:/tmp/conf
        ports:
          - "8081:8081"
        environment:
          - SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS=localhost:9092
          - SCHEMA_REGISTRY_KAFKASTORE_TOPIC=_schemas
          - SCHEMA_REGISTRY_HOST_NAME=schema-registry
          - SCHEMA_REGISTRY_LISTENERS=http://0.0.0.0:8081
          - SCHEMA_REGISTRY_DEBUG=true
        ulimits:
          nproc: 65535
          nofile:
            soft: 65535
            hard: 65535
        logging:
            driver: json-file
            options:
              max-size: "100m"
              max-file: "3"

使用 docker compose up 部署它后,出现以下错误:

[kafka-admin-client-thread | adminclient-1] WARN org.apache.kafka.clients.NetworkClient - [AdminClient clientId=adminclient-1] Connection to node -1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

Kafka 在本地运行(它不在 docker 中运行),顺便说一下,kafka 服务器属性具有以下配置:

经纪人.id=0

listeners=PLAINTEXT://localhost:9092

listener.security.protocol.map=PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL

标签: dockerapache-kafkadocker-compose

解决方案


正如 Chris 所说,您需要将 Schema Registry Docker 容器连接到本地机器。要么,要么在 Docker 中运行 Kafka(或者在本地运行 Schema Registry,例如从作为 Confluent Platform 的一部分提供的 tarbar


推荐阅读