【问题标题】:Kafka cluster setup卡夫卡集群设置
【发布时间】:2018-10-25 15:47:33
【问题描述】:

我是 Kafka 技术的新手。 我已经使用 Ambari 设置了一个基本的单节点集群。

我想了解生产服务器的推荐配置是什么。假设在生产中,我将有 5 个主题,每个主题在一天内获得 500,000 到 50,000,000 的流量。

我正在考虑使用 EC2 r5.xlarge 实例设置一个 3-4 节点的 kafka 集群。

我对动物园管理员部分很困惑。我知道zookeeper需要奇数个节点,并且所有kafka节点上都安装了zookeeper,那么我如何运行偶数个节点的Kafka。如果这是真的,它也会将 Kafka 限制为奇数个节点。

是否真的需要在所有 Kafka 节点上安装 Zookeeper。我可以在不同的节点上安装 Zookeeper,在不同的节点上安装 Kafka 代理吗?

如果我想运行多个 Kafka 集群怎么办。是否可以通过单个 Zookeeper 集群管理多个 Kafka 集群,如果可能的话,如何?

我最近才开始学习 Kafka,任何帮助将不胜感激。

谢谢,

【问题讨论】:

  • "zookeeper 安装在所有 kafka 节点上" -- 不,不要这样做。
  • 好吧,这不是什么大问题。建议将它们分开,但如果它只是一个 kafka 集群并且它是专用的 zookeeper,则应该没有问题。例如,我们在生产运行中使用的托管 kafka 集群就是这样。
  • @sowieso 对于任何超过 5 个代理的集群大小,所有个代理都不需要它。但即便如此,Kafka 和 Zookeeper 更喜欢使用大量的页面缓存/JVM 内存,所以无论如何最好分开
  • @cricket_007 我同意,而且 quorum 协商速度较慢,所以 zookeeper ensemble 应该最多 5 个服务器

标签: amazon-ec2 apache-kafka apache-zookeeper


【解决方案1】:

我对动物园管理员部分很困惑。我了解动物园管理员 需要奇数个节点,并且所有kafka上都安装了zookeeper 节点,那么我如何运行具有偶数节点的 Kafka。如果这是 确实,它也会将 Kafka 限制为奇数个节点。

Zookeeper 可以,但不必安装在与 kafka 相同的服务器上。不需要在奇数个节点上运行zookeeper,非常好的推荐

是否真的需要在所有 Kafka 节点上安装 Zookeeper。我可以吗 在单独的节点上安装 Zookeeper,在单独的节点上安装 Kafka 代理 节点,如何?

这不是必需的,最好不要将zookeeper和kafka放在同一台服务器上。在另一台服务器上安装 zookeeper 与它们驻留在同一台服务器上时非常相似。每个 kafka 代理都需要有指向所有 zookeeper 节点的 zookeeper.connect 设置。

如果我想运行多个 Kafka 集群怎么办。是否有可能 通过单个 Zookeeper 集群管理多个 Kafka 集群,如何 如果可能的话?

这是可能的。在这种情况下,建议使用专门用于 zookeeper ensemble 的服务器。在这种情况下,在 zookeeper.connect 设置中,您应该使用 hostname:port/path 而不是 hostname:port。

【讨论】:

    【解决方案2】:

    我可以在不同的节点上安装 Zookeeper,在不同的节点上安装 Kafka 代理吗?

    你可以,如果你有可用的资源,你应该这样做。


    在奇数个服务器上运行zookeeper-server-start zookeeper.properties。 (较大的 Kafka 集群最多 5 或 7 个)

    在作为 Kafka 代理的所有其他机器上,与 Zookeeper 不同的服务器,编辑 server.properties 以指向 zookeeeper.connect 属性的那组 Zookeeper 机器地址。

    然后为每个新的 Kafka 代理执行kafka-server-start server.properties

    从那里,您可以独立于 Zookeeper 扩展 Kafka

    是否可以通过单个 Zookeeper 集群管理多个 Kafka 集群

    查找 Zookeeper chroot

    一个 Kafka 集群将被定义为

    zoo1:2181/kafka1
    

    还有一秒

    zoo1:2181/kafka2
    

    如果机器不应该在同一个 Kafka 集群中,请注意不要混淆它们


    您可以在 Github 上的 Cloud 中找到各种 CloudFormation、Terraform 或 Ansible 存储库,用于以分布式方式设置 Kafka,或者如果您熟悉 Kubernetes,则可以选择 Kubernetes。

    【讨论】:

    • 感谢@cricket_007 的回复。这有助于消除一些疑虑。您是否还可以回答是否可以通过单个 Zookeeper 集群管理多个 Kafka 集群。这是如何运作的。如果您可以为此指向一些文档/设置脚本,那就太好了。
    • 所有代理必须使用完全相同的 Zookeeper 连接字符串。如果您以前使用过 Zookeeper,您可能知道它可以生成锁,这样任何一个应用程序一次只能编辑一个值,并且它的数据存储在类似文件系统的树中。所有 Apache 项目都有自己的自己的网站
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    • 2022-12-07
    • 2015-06-18
    • 2017-07-07
    • 1970-01-01
    相关资源
    最近更新 更多