【问题标题】:Kafka Broker vs Topic卡夫卡经纪人与主题
【发布时间】:2020-10-01 08:50:50
【问题描述】:

一个topic通常驻留在broker(服务器进程)中,并且有多个分区,但它能否跨越多个broker或节点(机器)?

也就是说,假设一个主题分为两个分区,分区 1 和分区 2。同一个topic的partition-1可以属于broker-1,partition-2可以属于不同的broker-2还是完全属于不同的node?​​p>

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    Kafka 集群由一台或多台服务器(Kafka 代理)组成。

    每个代理可以有一个或多个主题。 Kafka 主题分为多个分区,每个分区可以放置在单个或单独的机器上,以允许多个消费者并行读取一个主题。

    【讨论】:

      【解决方案2】:

      是的,一个主题的不同分区可以存储在多台机器上。但是,单个分区必须完全存储在一台机器上。

      【讨论】:

      • 谢谢,如果是这样,我们可以控制哪个分区应该属于哪个代理/节点吗?
      • 是的,您可以使用sh kafka-reassign-partitions.sh 脚本手动完成。 [1]:cwiki.apache.org/confluence/display/KAFKA/…
      • 单个分区通常在其他代理上有 2 个其他副本,因此当代理关闭时数据不会丢失或不可用。具有分区活动副本的代理称为“领导者”,其他副本称为 ISR(同步副本)
      【解决方案3】:
      顾名思义,

      Kafka Broker 说明了接收请求并执行特定操作的控制器或服务器的类型。例如,Kafka 代理接收来自生产者的消息并将它们存储在以唯一偏移量为键的磁盘上。代理可以根据请求将来自主题、分区和偏移量的唯一消息响应给消费者

      每当我们想到 Kafka Broker 时,它并不是一个单独的单元,而是一组使用 ZooKeeper 共享信息的服务器。 Kafka Brokers 不在一台机器上,而是能够分布在分布式集群环境中。部署在由 Zookeeper 协调的 Cluster 上的这组 broker 可以可视化为 Kafka Cluster。 Brokers 是 Kafka Cluster 的核心,也是它与消费者、生产者、confluent 连接器等外部词的连接器。

      Kafka 主题由分布在 Broker 上的多个分区组成。一个分区可以被视为领导者,其他分区将成为追随者,并在其他代理中使用 ISR 复制消息。

      您可以使用重新分配分区工具来分配领导者分区,您可以参考下面的链接了解更多详细信息

      https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools

      【讨论】:

      • 我认为他们正在将 ZooKeeper 从 Kafka 中移除。
      【解决方案4】:

      kafka 主题在多个代理之间复制,以便多个消费者可以并行接收数据,或者在一个代理出现故障的情况下,可以从具有相同主题分区的其他代理检索数据。

      【讨论】:

        猜你喜欢
        • 2021-03-17
        • 1970-01-01
        • 1970-01-01
        • 2016-06-24
        • 1970-01-01
        • 2019-11-11
        • 2020-07-21
        • 2018-04-07
        • 2021-02-12
        相关资源
        最近更新 更多