自动创建topic 根据github kafka-docker,可以自动创建topic。 其他 解决问题时参考了: kafka-docker搭建问题解决 次要参考: kafka调试中遇到Connection to node -1 could not be established.
docker-compose up -d,会先下载zookeeper和kafka的镜像,然后创建容器; 执行命令docker ps,可见启动了一个zookeeper和一个kafka容器: [root@hedy kafka-docker ,执行以下命令即可将borker总数从1个扩展到4个: docker-compose scale kafka=4 执行命令docker ps,可见kafka容器已经扩展到4个: [root@hedy kafka-docker zookeeper:2181 \ --replication-factor 2 执行以下命令查看刚刚创建的topic,这次在容器kafka-docker_kafka_3上执行命令试试: [root@hedy kafka-docker 查看刚刚创建的topic的情况,borker和副本情况一目了然,如下: [root@hedy kafka-docker]# docker exec kafka-docker_kafka_3 \ > kafka-topics.sh
接下来我们尝试着分析一下,看看能否证实这个推测; 证实推测 去镜像的官网找到容器启动时自动执行的脚本 start-kafka.sh,地址是:https://github.com/wurstmeister/kafka-docker 对于这个问题,我的猜测是该镜像已经包含了可执行文件"docker",所以去看看该镜像的Dockerfile文件吧,地址是:https://github.com/wurstmeister/kafka-docker
:/kafka # 挂载kafka使用过程中产生的数据 - /var/run/docker.sock:/var/run/docker.sock # 挂载宿主机的docker.sock 在kafka-docker
org.label-schema.build-date="${build_date}" \ org.label-schema.vcs-url="https://github.com/wurstmeister/kafka-docker
当然,你也可以按照官方提供的来:https://github.com/wurstmeister/kafka-docker/blob/master/docker-compose.yml 。
quickstarts.git 由于我们这里是使用 Kafka 来做消息队列的中间件,所以我们首先需要在本地环境运行 Kafka,我们可以直接使用 https://github.com/wurstmeister/kafka-docker
本项目完全兼容 KRaft, 不依赖 ZooKeeper,最小化的 Kafka 集群仅启动一个 Pod 即可。