kafka代理是否包含复制集而不是分区?

时间:2017-10-21 10:22:13

标签: apache-kafka

从Kafka文档和我读过的其他一些博客中,我得出结论,一个kafka-broker包含一个主题分区。 Here它说一个Kafka经纪人只持有一个分区。我的系统中只有一个代理,但我能够创建一个包含3个分区和1个复制因子的主题。我还尝试用一个代理创建一个包含3个分区和3个复制因子的主题。它会抛出错误

Error while executing topic command : replication factor: 3 larger than available brokers: 1 [2017-10-21 15:35:25,928] ERROR org.apache.kafka.common.errors.InvalidReplicationFactorException: replication factor: 3 larger than available brokers: 1 (kafka.admin.TopicCommand$)

所以我有一个问题。

  1. Kafka-broker是否保留复制而不是分区?
  2. 如果我用一个代理创建3个分区,会发生什么?
  3. 在1个代理,1个副本和3个分区的情况下,kafka-broker可以保留多个单个主题的分区?
  4. 有人,请解释这里发生的事情。

2 个答案:

答案 0 :(得分:4)

您正在提到的帖子并未说明一个代理只能存储一个分区。它只是说分区在代理之间是不可分割的(主题是)。实际上我管理着一个拥有数千个分区的经纪人。所以,对于你的问题:

  1. Kafka经纪人拥有许多分区。复制是跨群集存储多个分区副本的方法。
  2. 如果在单节点群集上创建具有3个分区的主题,则代理将保留所有分区的数据。由于需要更多节点,因此无法进行复制。
  3. 所有这些。

答案 1 :(得分:0)

摘要:复制因子的数量必须等于或小于您拥有的代理数量。