【问题标题】:Kafka Topic, Broker, ZooKeeper architecture overviewKafka Topic、Broker、ZooKeeper 架构概述
【发布时间】:2020-05-26 04:56:54
【问题描述】:

我已经阅读了很多关于 Kafka 架构的文章,但我在这方面仍然是全新的,在编码方面,如果我正确理解了这些内容,就会出现一些混乱。

据我了解,Kafka 服务器、代理和节点是同义词。 Kafka 集群中可以有一些代理。有一个 Kafka 主题 (T1),它由几个分区 (P1, P2..) 组成。这些分区可以跨代理(B1、B2..)复制。 B1 可以是 P1 的领导者,B2 可以是 P2 的领导者,依此类推。我们是否说为代理或集群定义了主题 T1,如果我们将主题视为一组分区,我们可以说“主题副本”吗?

来自 Kafka 官方文档:

bootstrap.servers:用于建立与 Kafka 集群的初始连接的主机/端口对列表。客户端将使用所有服务器,无论此处指定哪些服务器进行引导——此列表仅影响用于发现完整服务器集的初始主机。此列表应采用 host1:port1,host2:port2,.... 的形式。由于这些服务器仅用于初始连接以发现完整的集群成员(可能会动态更改),因此此列表不需要包含完整集服务器数量(不过,您可能需要多个服务器,以防服务器停机)。

所以据我了解,定义 host1:port1,host2:port2 表示有两个代理。

在这种情况下,ZooKeeper 在执行bin/kafka-console-producer.sh --broker-list host1:port1,host2:port2 --topic test 时是否会自动将消息分发给领导者? (我相信在某处我读到过生产者应该从 ZooKeeper 读取代理 ID,但这里不是没有必要吗?) 是否等于使用 bin/kafka-console-producer.sh --zookeeper host1:z_port1,host2:z_port2 --topic test 发布? 我应该如何基本理解bin/kafka-configs.sh --zookeeper host1:z_port1,host2:z_port2?我们只有一个 zookeeper 实例?

【问题讨论】:

    标签: apache-kafka apache-zookeeper


    【解决方案1】:

    我们是否说为代理或集群定义了主题 T1,如果我们将主题视为一组分区,我们可以说“主题副本”吗?

    1) 集群。 2) 分区在多个代理之间单独复制,通常比复制因子本身还多。更合适的术语是“同步副本 (ISR)”

    ZooKeeper 执行时是否会自动向领导者分发消息

    Zookeeper 没有,不。您的客户端与代理控制器通信,然后接收集群中的所有代理,该代理还返回有关哪个代理是哪个主题分区的领导者的元数据。然后客户端单独连接并生成计算分区的每个领导代理

    是否等于发布

    生产*,是的。

    我们只有一个 zookeeper 实例?

    一个 Zookeeper 集群 可以通过名为 chroot 的功能管理多个 Kafka 集群,该功能是 Zookeeper znodes 中的根目录,其中包含有关托管服务的信息。

    另外,kafka-topics 命令现在可以使用--bootstrap-server,而不是--zookeeper

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-19
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2014-07-13
      • 2021-10-07
      • 2019-09-11
      相关资源
      最近更新 更多