映射出 Kafka+Zookeeper 集群

Mapping out a Kafka+Zookeeper cluster

背景

我继承了 Kafka/Zookeeper 安装。我对这些有一定的了解 - 我知道一般架构、客户端如何工作、关于主题等,参与编程 Java 客户端等

但是安装有点可疑。它们分别是 Kafka 和 Zookeeper 的三个实例(在各自的 docker 容器中)。据说它们应该可以工作,但我看到的是所有进程都喷出 immense 量的日志输出,其中包含大量(不同的)警告和错误。我的印象是其中一些似乎很正常(或者一直在自我修复),并且很难确定一切是否按预期工作,是否正确设置。

根据 Google,其中一些与经纪人的不当关闭有关;损坏的个别主题等。由于这是一个测试环境,我可以轻松删除这些文件。

我知道一些命令可以帮助我检查主题等(基本的东西,比如列出它们,显示它们的个人配置等)。

然而...

问题

有没有在线的ressource/documentation可以作为一个系统的攻略,看看是不是基本都设置好了; 例如解决这些问题:

我知道有人可能会因为这个问题过于笼统而很快驳回;我不是要你解决我的问题。我正在寻找一种资源来系统地完成这样的安装 - 它可能涵盖也可能不涵盖我给出的示例,但它肯定 应该 提供一种系统的方法来查明事情是否根本就错了。

Stéphane Maarek 的 packtpub tutorial/training 是在集群模式下设置 kafka 的绝佳资源。但是他在 ubuntu VM 的 AWS 云中做到了这一点。

我按照相同的步骤在 cent OS 中安装了 Vagrant 虚拟机。您可以找到代码 here.

VM 有 yahoo kafka 管理器来监控 kafka 内部细节。可用、健康、分区、领导者等的代理列表,

kafka 管理器可以帮助您进行高级监控。

请提供您的意见。

与其只查看日志,您可能还想熟悉 JMX metrics 以及如何在集群中收集它们。

如果您想真正收集和分析日志,您可能需要单独使用类似 Elasticsearch 的东西。

您不会在主题中看到 "how many messages",您需要更多的监控才能知道端口是否实际打开以及 Kafka 进程是否 运行,磁盘正在填满等等

这里我的意思是,Kafka是需要喂养和浇水的,如果你打算把它生产化,你不能只建立一个小集群就不管了。即使你一开始认为它设置正确,增加它的负载最终也会导致它陷入糟糕的状态。

要对您的开发环境进行有限试用以全面了解您的集群健康状况,Confluent Control Center 可以提供帮助。


为了解决 "what's in there" 问题,我建议您设置一个 Schema Registry,并说服 Kafka 生产者使用它。