2017-10-21 56 views
0

从我读过的卡夫卡文档和其他一些博客中,我得出结论:一个卡夫卡经纪人包含一个主题分区。它说一个Kafka经纪人只拥有一个分区。我的系统中只有一个代理,但我可以创建一个包含3个分区和1个复制因子的主题。我也尝试用一个代理创建一个包含3个分区和3个复制因子的主题。它抛出错误是否kafka代理持有复制集而不是分区?

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. 卡夫卡经纪人是否持有复制而不是分区?
  2. 如果我用一个代理创建3个分区,会发生什么情况?
  3. 在1个经纪人,1个副本和3个分区的情况下,kafka-broker可以持有多少个单独主题的分区?

有人请说明这里发生了什么。

回答

4

您正在接受的文章并没有说一个经纪人只能存储一个分区。它只是说分区不能在代理之间分裂(主题是)。其实我管理一个拥有数千个分区的经纪人。所以,对于您的问题:

  1. 卡夫卡经纪人持有很多分区。复制是在群集中存储多个分区副本的方式。
  2. 如果您在单个节点群集上创建包含3个分区的主题,代理将保存所有分区的数据。复制是不可能的,因为它需要更多的节点。
  3. 所有这些。
+0

因此,这里所指的复制是代理的复制,而不是主题。 –

+0

不,您在主题上设置复制。但是这受到集群中经纪人数量的限制。 – Mariusz

+0

那么如果我有4个分区,2个副本和2个经纪人会发生什么。这里的复制呢? –

相关问题