kafka代理是否保存复制集而不是分区?

Sat*_*mar 1 apache-kafka

从 Kafka 文档和我阅读的其他一些博客中,我得出的结论是,一个 kafka-broker 由一个主题分区组成。这里它说一个 Kafka-broker 只持有一个分区。我的系统中只有一个代理,但我可以创建一个具有 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个broker、1个副本和3个分区的情况下,kafka-broker可以容纳多少个单个主题的分区?

有人请解释一下这里发生了什么。

Mar*_*usz 5

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

  1. 卡夫卡经纪人持有许多分区。复制是跨集群存储多个分区副本的方式。
  2. 如果您在单节点集群上创建具有 3 个分区的主题,则代理将保存所有分区的数据。复制是不可能的,因为它需要更多节点。
  3. 他们全部。