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

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

  • 三个docker集装箱每个托pipe一个卡夫卡/动物园pipe理员服务器对
  • 六个docker集装箱,其中三个用于卡夫卡服务器,另外三个用于动物园pipe理员服务器

我这样问,因为在我看来,像三节点Zookeeper集群只能存在单节点故障,而三节点Kafka集群可能存在双节点故障(您可能必须将主题复制因子设置为3)。 那么在不同的容器中运行它们是否更好呢? 说起来,启动一个新的Docker容器的代价是多less?

如果我build议为每个容器运行一个服务器,是否更倾向于为每种服务器构build一个定制的Docker镜像(在这种情况下,一个用于kafka的另一个Docker镜像,另一个用于zookeeper),或者为所有不同的统一镜像服务器? 我猜测为kafka和zookeeper创build两个单独的图像是没有意义的,但是如果我拥有所有不同种类的集群和服务器,则认为elasticsearch要模拟? 在什么时候开始有意义地创build不同的docker图像以便在单个项目中使用?

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

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