对于基于 Docker 容器的实现,运行 在同一个容器中放置一对 Kafka 服务器和 Zookeeper 服务器是否有意义?

For a Docker container based implementation, does it make sense to run a pair of Kafka server and Zookeeper server inside the same container?

我正在尝试使用 docker 容器实现一个由三个 kafka 服务器节点和三个 zookeeper 服务器节点组成的 kafka 集群,以下哪个是首选,如果两者都不是,首选方式是什么?

我问这个是因为在我看来,三节点 Zookeeper 集群只能在单节点故障中幸存下来,而三节点 Kafka 集群可能在两节点故障中幸存下来(您可能必须设置主题复制因子为 3)。那么,如果创建新容器的成本不是那么高,那么 运行 将它们放在不同的容器中会更好吗?说到这里,启动一个新的 Docker 容器的成本是多少?

如果我被建议 运行 每个容器一个服务器,是否更倾向于为每种服务器构建一个量身定制的 Docker 映像(在这种情况下,一个 docker kafka 的图像和 zookeeper 的另一个图像),还是所有不同服务器的一个统一图像?我猜想只为 kafka 和 zookeeper 创建两个单独的图像没有意义,但是如果我有所有不同类型的集群和服务器,想想 elasticsearch,来模拟怎么办?在什么时候创建要在单个项目中使用的不同 docker 图像才有意义?

如果我有时间这样做,我会制作 2 个不同的图像,一个用于 kafka,一个用于 zk。我会构建一个 docker-compose 文件来启动集群。

所以 6 个不同的容器 https://docs.docker.com/compose/