Kafka及Schema Registry启动失败:ZooKeeper连接拒绝问题求助
问题解决:Kafka/Schema Registry连接ZooKeeper失败
错误原因
在Docker Compose的容器网络环境中,localhost指向容器自身,而非宿主机或其他服务容器。你当前的Kafka和Schema Registry配置中,使用localhost:2181尝试连接ZooKeeper,自然会被拒绝——因为这两个容器内部并没有运行ZooKeeper服务。
修复步骤
修改Docker Compose配置中的两处ZooKeeper连接地址,将localhost替换为ZooKeeper的服务名zookeeper:
1. 调整Kafka的ZooKeeper连接配置
找到Kafka服务的KAFKA_ZOOKEEPER_CONNECT环境变量,修改为:
KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181"
2. 调整Schema Registry的ZooKeeper连接配置
找到Schema Registry服务的SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL环境变量,修改为:
- SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL=zookeeper:2181
完整修复后的Docker Compose配置
version: "3.7" services: postgres: image: debezium/postgres:13 ports: - 5432:5432 environment: - POSTGRES_USER=docker - POSTGRES_PASSWORD=docker - POSTGRES_DB=exampledb zookeeper: image: confluentinc/cp-zookeeper:5.5.3 environment: ZOOKEEPER_CLIENT_PORT: 2181 ports: - 2181:2181 kafka: image: confluentinc/cp-enterprise-kafka:5.5.3 depends_on: [zookeeper] environment: KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_BROKER_ID: 1 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 KAFKA_JMX_PORT: 9991 ports: - 9092:9092 debezium: image: debezium/connect:1.4 environment: BOOTSTRAP_SERVERS: kafka:9092 GROUP_ID: 1 CONFIG_STORAGE_TOPIC: connect_configs OFFSET_STORAGE_TOPIC: connect_offsets KEY_CONVERTER: io.confluent.connect.avro.AvroConverter VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter CONNECT_KEY_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081 CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081 depends_on: [kafka] ports: - 8083:8083 schema-registry: image: confluentinc/cp-schema-registry:5.5.3 environment: - SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL=zookeeper:2181 - SCHEMA_REGISTRY_HOST_NAME=schema-registry - SCHEMA_REGISTRY_LISTENERS=http://schema-registry:8081,http://localhost:8081 ports: - 8081:8081 depends_on: [zookeeper, kafka]
额外说明
depends_on仅控制容器启动顺序,不保证依赖服务完全就绪。如果仍出现连接问题,可以添加健康检查或使用wait-for-it等脚本确保ZooKeeper和Kafka启动完成后再启动后续服务。
内容的提问来源于stack exchange,提问作者samshers
相关产品推荐
相关产品推荐

