映射出 Kafka+Zookeeper 集群
Mapping out a Kafka+Zookeeper cluster
背景
我继承了 Kafka/Zookeeper 安装。我对这些有一定的了解 - 我知道一般架构、客户端如何工作、关于主题等,参与编程 Java 客户端等
但是安装有点可疑。它们分别是 Kafka 和 Zookeeper 的三个实例(在各自的 docker 容器中)。据说它们应该可以工作,但我看到的是所有进程都喷出 immense 量的日志输出,其中包含大量(不同的)警告和错误。我的印象是其中一些似乎很正常(或者一直在自我修复),并且很难确定一切是否按预期工作,是否正确设置。
根据 Google,其中一些与经纪人的不当关闭有关;损坏的个别主题等。由于这是一个测试环境,我可以轻松删除这些文件。
我知道一些命令可以帮助我检查主题等(基本的东西,比如列出它们,显示它们的个人配置等)。
然而...
问题
有没有在线的ressource/documentation可以作为一个系统的攻略,看看是不是基本都设置好了; 例如解决这些问题:
- 三个 Zookeeper 和三个 Kafka 实例是否正确地相互通信以实现高可用性目的?他们有正确的“领导者”等吗?
- 服务器通常是否“健康”,即是否能够轻松接受连接等?
- 主题的运作情况如何(其中有什么内容、有多少消息等)?
我知道有人可能会因为这个问题过于笼统而很快驳回;我不是要你解决我的问题。我正在寻找一种资源来系统地完成这样的安装 - 它可能涵盖也可能不涵盖我给出的示例,但它肯定 应该 提供一种系统的方法来查明事情是否根本就错了。
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 生产者使用它。
背景
我继承了 Kafka/Zookeeper 安装。我对这些有一定的了解 - 我知道一般架构、客户端如何工作、关于主题等,参与编程 Java 客户端等
但是安装有点可疑。它们分别是 Kafka 和 Zookeeper 的三个实例(在各自的 docker 容器中)。据说它们应该可以工作,但我看到的是所有进程都喷出 immense 量的日志输出,其中包含大量(不同的)警告和错误。我的印象是其中一些似乎很正常(或者一直在自我修复),并且很难确定一切是否按预期工作,是否正确设置。
根据 Google,其中一些与经纪人的不当关闭有关;损坏的个别主题等。由于这是一个测试环境,我可以轻松删除这些文件。
我知道一些命令可以帮助我检查主题等(基本的东西,比如列出它们,显示它们的个人配置等)。
然而...
问题
有没有在线的ressource/documentation可以作为一个系统的攻略,看看是不是基本都设置好了; 例如解决这些问题:
- 三个 Zookeeper 和三个 Kafka 实例是否正确地相互通信以实现高可用性目的?他们有正确的“领导者”等吗?
- 服务器通常是否“健康”,即是否能够轻松接受连接等?
- 主题的运作情况如何(其中有什么内容、有多少消息等)?
我知道有人可能会因为这个问题过于笼统而很快驳回;我不是要你解决我的问题。我正在寻找一种资源来系统地完成这样的安装 - 它可能涵盖也可能不涵盖我给出的示例,但它肯定 应该 提供一种系统的方法来查明事情是否根本就错了。
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 生产者使用它。