从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$)
.
所以我有一个查询 .
-
Kafka-broker是否保留复制而不是分区?
-
如果我用一个代理创建3个分区,会发生什么?
-
在1个代理,1个副本和3个分区的情况下,kafka-broker可以保存多个单个主题的分区?
有人,请解释这里发生的事情 .
2 回答
您正在考虑的帖子并未说明一个代理只能存储一个分区 . 它只是说分区在代理之间是不可分割的(主题是) . 实际上我管理着一个拥有数千个分区的经纪人 . 所以,对于你的问题:
Kafka经纪人拥有许多分区 . 复制是跨群集存储多个分区副本的方法 .
如果在单节点群集上创建具有3个分区的主题,则代理将保留所有分区的数据 . 由于需要更多节点,因此无法进行复制 .
所有这些 .
简介:与您拥有的代理数量相比,复制因子的数量必须相等或更少 .