卡夫卡& Zooerper在K8s的生产中部署

时间:2017-07-24 14:18:53

标签: configuration apache-kafka kubernetes production-environment zk

有没有人对生产环境的Kafka和ZK配置有任何建议?

我在网上看了一下,有一些链接在压缩,RAM等方面报告配置,但没有任何与ZK和Kafka实例的数量有关...

我的部署有5个动物园和3个kafka实例:

NAME      READY     STATUS              RESTARTS   AGE
kafka-0   0/1       Running             0          12s
kafka-1   0/1       Running             0          12s
kafka-2   0/1       Running             0          12s
zoo-0     0/1       Running             0          12s
zoo-1     0/1       Running             0          12s
zoo-2     0/1       Running             0          12s
zoo-3     0/1       Running             0          12s
zoo-4     0/1       Running             0          12s   

我得到的是,最好部署一个Zk集群(单独),然后指向那个集群。 Kubernetes上的集群通信怎么样?

感谢任何帮助或建议 - 谢谢

1 个答案:

答案 0 :(得分:0)

我不是这方面的专家,但会第一次尝试。

我不明白的一件事是你为什么拥有比卡夫卡更多的动物园管理员    - > Zookeeper是kafka的元数据存储,因此您可以从一个zookeeper开始,处理故障转移,您可以与3个动物园管理员一起使用。

因此,要拥有一个简单的Kafka Production集群,您可以从3/5 Kafka节点和3个动物园管理员开始。

Kafka磁盘大小应取决于您想要的保留期。 节点数应该取决于您想要的并行化。

我不知道Kubernetes,所以不确定。但是,动物园管理员一般应该为每个基础设施都有单独的根文件夹,3个动物园管理员应该是好的开始。 (注意:您可能想尝试使用SSD进行zookeeper磁盘,有人说它很好,有些人说没有改进,我建议尝试验证)

投入生产,我会更关心监控并确保服务不会停止。您可以通过执行以下操作来确保

  1. Kafka是预先写入日志,因此请确保在集群级别和主题级别适当设置rendition.bytes和retention.ms
  2. 监控任何滞后,消费者滞后
  3. 领导者分发是均匀的,您必须在任何节点重启时监控它,分发可能会不均匀。
  4. 如果您处理大量数据,请担心压缩。