我有一个docker-compose文件统计信息,它旋转了一个单节点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
答案 0 :(得分:1)
除了使用较新的容器版本外,没有其他方法可以使其更快。
Zookeeper的启动速度相当快,但是Kafka依赖Zookeeper,需要协调额外的任务来选举领导者,加载其他一些元数据等。
如果要在其之上添加架构注册表,则需要启动Kafka,然后创建其_schemas
主题,该主题需要往返Zookeeper。
总而言之,正在发生许多预初始化步骤,这些步骤都是必需的,不能跳过以减少启动时间。
假设您正在将其作为JVM测试框架的一部分运行,那么“更快”的方法将是使用每个服务的嵌入式版本。