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

时间:2015-03-26 09:08:24

标签: elasticsearch docker apache-zookeeper apache-kafka

我尝试实现一个kafka集群包含三个kafka服务器节点和三个使用docker容器的zookeeper服务器节点,以下哪个是首选,如果不是,那么首选方式是什么?

  • 三个docker容器,每个容器都有一个kafka / zookeeper服务器对
  • 六个docker容器,其中三个用于kafka服务器,另外三个用于zookeeper服务器

我之所以这样问,是因为在我看来,三节点Zookeeper集群只能幸免于单节点故障,而三节点Kafka集群可能会在双节点故障中幸免(您可能需要设置主题复制因子为3)。如果创建新容器的成本太高,那么在不同的容器中运行它们会更好吗?说到这个,启动一个新的Docker容器有多昂贵?

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

1 个答案:

答案 0 :(得分:2)

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

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