当重新分配分区(特别是logsize)时,在kafka中会发生什么?

2uluyalo  于 2021-06-07  发布在  Kafka
关注(0)|答案(0)|浏览(186)

因此,我们目前正在尝试使用Kafka0.9,并且几乎处于概念验证阶段。我们才刚刚开始调查,并试图找出,如果这是我们需要的。还有很多东西要学,所以请耐心听我说:)
当前设置如下:
3个不同主机上的Kafka代理:zkhost1、zkhost2、zkhost3
一个主题:“我的主题”
主题有4个分区
复制因子为1
我们有一个生产商和三个消费者,都在同一个消费群体“mygroup”
现在我正试图用kafka-reassign-partitions.sh脚本更改复制因子。为此,我创建了以下json文件:

{"version":1,
"partitions":[
    {"topic":"myTopic","partition":0,"replicas":[0,1,2]},
    {"topic":"myTopic","partition":1,"replicas":[0,1,2]},
    {"topic":"myTopic","partition":2,"replicas":[0,1,2]},
    {"topic":"myTopic","partition":3,"replicas":[0,1,2]}
    ]
}

…然后执行脚本:

kafka/bin/kafka-reassign-partitions.sh --zookeeper zkhost1:2181,zkhost2:2181,zkhost3:2181 --reassignment-json-file increase-replication-factor.json --execute

它运行平稳,之后我得到了预期的复制:

Topic:myTopic   PartitionCount:4    ReplicationFactor:3 Configs:
Topic: myTopic  Partition: 0    Leader: 0   Replicas: 0,1,2 Isr: 0,2,1
Topic: myTopic  Partition: 1    Leader: 0   Replicas: 0,1,2 Isr: 0,2,1
Topic: myTopic  Partition: 2    Leader: 0   Replicas: 0,1,2 Isr: 0,2,1
Topic: myTopic  Partition: 3    Leader: 0   Replicas: 0,1,2 Isr: 0,2,1

我不明白的是,在重新分配期间分区发生了什么。当我看到ConsumerofSetchecker时,这是我在重新分配之前看到的:

kafka/bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --group myGroup --zookeeper zkhost1:2181 --topic myTopic

Group           Topic                          Pid Offset          logSize         Lag             Owner
myGroup         myTopic                        0   925230          925230          0               none
myGroup         myTopic                        1   925230          925230          0               none
myGroup         myTopic                        2   925230          925230          0               none
myGroup         myTopic                        3   925230          925230          0               none

…这是我在调任后看到的:

Group           Topic                          Pid Offset          logSize         Lag             Owner
myGroup         myTopic                        0   23251           23252           1               none
myGroup         myTopic                        1   41281           41281           0               none
myGroup         myTopic                        2   23260           23260           0               none
myGroup         myTopic                        3   41270           41270           0               none

对我来说,这引发了几个问题:
为什么日志大小现在大大减少了?重新分配是否会引发一些清理(我们没有设置字节限制)
为什么在重新分配之前,所有4个分区的大小都大致相同,而在重新分配之后,分区0,2和1,3之间有这么大的差异?一个主题的所有分区不应该有相同的日志大小吗?或者我误解了这里的概念吗?
这样的事情(即重新分配分区)会导致数据丢失吗(在这种情况下,我看不到任何关于我们消费者的信息)。如果是这样的话,有没有一种方法可以避免这种风险呢?
谢谢你的回答和问候,
/香港

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题