【问题标题】:Broker per node model?每个节点模型的代理?
【发布时间】:2017-11-25 03:53:56
【问题描述】:

我在谷歌上浏览了几个 Kafka 教程,例如 this one。 基于它们,我在 Kafka 的背景下遇到了一些问题:-

1.什么是经纪人?

据我了解,每个 Kafka 实例托管主题(零个或多个分区)都是代理。

2。每个节点的代理?

我相信在集群下的实际场景中,理想情况下每个节点将有一个 kafka 实例,每个实例将包含两个分区

a. One partition(working as leader)  
b. Another partition working as follower for partition on another anode.

这样对吗?

【问题讨论】:

    标签: java apache-kafka


    【解决方案1】:

    1) 正确。代理是运行在 Java 虚拟机中的 Kafka 服务器软件的一个实例

    2) 不正确。节点实际上与代理相同。如果您有三个 Kafka 代理作为单个集群运行(为了可扩展性和可靠性),那么据说您有一个 3 节点 Kafka 集群。每个节点是某些分区的领导者和其他分区的备份(副本)。

    但是,除了 Kafka 代理节点之外,还有其他类型的节点。 Kafka 使用 Zookeeper,因此您可能也有 3 或 5 个 Zookeeper 节点。 Zookeepers 集群通常称为 Ensemble。

    在更高版本的 Kafka 中,现在有不同类型的节点,因此通常说有 3 个代理节点、5 个 Zookeeper 节点、2 个 Kafka Connect 节点和一个 10 个节点(或实例)的 Kafka Streams 应用程序。

    【讨论】:

    • 我相信更高版本的 Kafka。我们可以淘汰 Zookeeper。我的意思是 Kafka 本身提供了集群,因为客户端代码可以连接到 kafka 集群而无需 Zookeeper。对吧?
    • 新版本的 Kafka 消除了客户端生产者和消费者对 zookeeper 的依赖,但代理仍然需要 zookeeper。
    • 所以代理在内部使用/设置zookeeper进行集群。我们在安装 kafka 时不需要手动设置 zookeeper 吗?或者我们可以说 zookeeper 与 kafka 集成在一起?
    • 你也需要设置zookeeper,但这并不难。它与 Kafka 捆绑在下载中。见kafka.apache.org/quickstart
    • 好吧,让我问一下 - 是否可以在没有 zookeeper 的情况下设置 kafka 集群?
    【解决方案2】:
    1. 托管零个或多个主题的每个 Kafka 实例称为代理。
    2. 每个节点可以托管多个代理,但在生产环境中,每个节点运行一个代理是有意义的。不过,每个代理通常都托管多个主题/分区。每个 Kafka 代理只有两个分区是一种资源浪费。

    我希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 2017-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-01
      相关资源
      最近更新 更多