You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

本地部署Confluent Kafka社区版:broker容器持续退出求助

解决Docker部署Kafka Broker容器莫名退出的问题

核心问题定位

从容器退出码137可以直接判断:容器被系统OOM Killer(内存不足终止器)强制关闭,当前运行的服务过多导致主机资源过载,这也是broker、connect、rest-proxy同时退出的原因。

解决思路与步骤

1. 简化Docker Compose配置

你仅需单节点Kafka+Schema Registry,直接删除不需要的服务(ksqldb系列、connect、rest-proxy、datagen),大幅减少资源消耗。以下是精简后的配置示例:

version: '3'
services:
  zookeeper:
    image: confluentinc/cp-zookeeper:5.5.1
    environment:
      ZOOKEEPER_CLIENT_PORT: 2181
      ZOOKEEPER_TICK_TIME: 2000
    ports:
      - "2181:2181"
    deploy:
      resources:
        limits:
          memory: 512M

  broker:
    image: confluentinc/cp-kafka:5.5.1
    depends_on:
      - zookeeper
    ports:
      - "9092:9092"
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
      KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
    deploy:
      resources:
        limits:
          memory: 1G

  schema-registry:
    image: confluentinc/cp-schema-registry:5.5.1
    depends_on:
      - broker
    ports:
      - "8081:8081"
    environment:
      SCHEMA_REGISTRY_HOST_NAME: schema-registry
      SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: PLAINTEXT://broker:9092
    deploy:
      resources:
        limits:
          memory: 512M

2. 配置资源限制与Docker环境

  • 给每个服务明确设置内存上限(如上述配置中的deploy.resources.limits.memory),避免容器无限制占用内存;
  • 确保本地Docker环境分配了足够内存:Docker Desktop建议至少分配2G以上,若运行多个服务可增加到4G。

3. 验证服务状态

启动精简后的配置后,执行以下命令确认状态:

# 后台启动服务
docker compose up -d
# 查看容器状态
docker compose ps
# 查看broker日志确认无异常
docker compose logs broker

内容的提问来源于stack exchange,提问作者guru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 23:20:37