加快 Confluent docker 加载时间

Speeding up Confluent docker load time

我有一个 docker-compose 文件 stat 启动单节点 Kafka、Zookeeper 和模式注册表堆栈来测试我的应用程序。目前,需要几分钟才能使堆栈可用;有什么设置可以加快启动时间吗?

我使用的配置(除了 SSL)如下:

kafka:
  image: confluentinc/cp-kafka:3.3.1
  depends_on:
    - zookeeper
  hostname: kafka
  ports:
    - 9092:9092
  environment:
    KAFKA_BROKER_ID: 1
    KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    KAFKA_ADVERTISED_LISTENERS: SSL://kafka:9092
    KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
    KAFKA_AUTO_CREATE_TOPICS_ENABLE: "false"
    KAFKA_LOG4J_ROOT_LOGLEVEL: WARN
    KAFKA_JMX_PORT: 9585
    KAFKA_JMX_HOSTNAME: kafka
    KAFKA_JMX_OPTS: "-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.rmi.port=9585"
  volumes:
    - ../../txs-data/kafka-data:/var/lib/kafka/data

除了使用较新的容器版本之外,没有办法让它更快。

Zookeeper 启动相当快,但 Kafka 依赖于 Zookeeper,需要协调额外的任务来选举领导者、加载一些其他元数据等。

如果您要在其上添加架构注册表,则需要 Kafka 启动,然后创建它的 _schemas 主题,这需要往返 Zookeeper。

总而言之,有很多预初始化步骤,这些步骤都是必需的,不能跳过以减少启动时间。


假设您运行将此作为 JVM 测试框架的一部分,"faster" 方法是使用每个服务的嵌入式版本。