kafka四个分区,其中两个分区leader处于离线状态,然后重启了下kafka集群,发现出现大量重复数据,使用console-producer生产测试,console-consumer消费,确定kafka产生了大量重复数据

发表于: 2021-04-15   最后更新时间: 2021-04-15 14:25:18   1,426 游览

screenshot

下面为kafka-console-consumer消费的数据,发现大量重复
screenshot

发表于 2021-04-15
添加评论

1、查看指定topic的分区部署情况,贴出结果来:

bin/kafka-topics.sh --describe --zookeeper 127.0.0.1:2181

2、提供下你测试的方式和具体的命令。

-> 半兽人 3年前
21/04/15 15:09:10 INFO utils.AppInfoParser: Kafka version: 2.2.1-cdh6.3.1
21/04/15 15:09:10 INFO utils.AppInfoParser: Kafka commitId: unknown
Topic:study_user_action_topic    PartitionCount:4    ReplicationFactor:2    Configs:min.insync.replicas=1,segment.bytes=1073741824,retention.ms=604800000,max.message.bytes=1000000,min.cleanable.dirty.ratio=0.5,unclean.leader.election.enable=false,retention.bytes=-1,delete.retention.ms=604800000
    Topic: study_user_action_topic    Partition: 0    Leader: 254    Replicas: 254,221    Isr: 254,221
    Topic: study_user_action_topic    Partition: 1    Leader: 221    Replicas: 221,222    Isr: 221,222
    Topic: study_user_action_topic    Partition: 2    Leader: 222    Replicas: 222,220    Isr: 220,222
    Topic: study_user_action_topic    Partition: 3    Leader: 220    Replicas: 220,254    Isr: 254,220
Topic:__consumer_offsets    PartitionCount:50    ReplicationFactor:3    Configs:compression.type=producer,min.insync.replicas=1,cleanup.policy=compact,segment.bytes=104857600,retention.ms=604800000,max.message.bytes=1000000,min.cleanable.dirty.ratio=0.5,unclean.leader.election.enable=false,retention.bytes=-1,delete.retention.ms=604800000
    Topic: __consumer_offsets    Partition: 0    Leader: 221    Replicas: 221,220,222    Isr: 221,222,220
    Topic: __consumer_offsets    Partition: 1    Leader: 222    Replicas: 222,221,220    Isr: 221,220,222
    Topic: __consumer_offsets    Partition: 2    Leader: 220    Replicas: 220,222,221    Isr: 221,220,222
    Topic: __consumer_offsets    Partition: 3    Leader: 221    Replicas: 221,222,220    Isr: 221,220,222
    Topic: __consumer_offsets    Partition: 4    Leader: 222    Replicas: 222,220,221    Isr: 221,222,220
    Topic: __consumer_offsets    Partition: 5    Leader: 220    Replicas: 220,221,222    Isr: 221,220,222
    Topic: __consumer_offsets    Partition: 6    Leader: 221    Replicas: 221,220,222    Isr: 221,220,222
    Topic: __consumer_offsets    Partition: 7    Leader: 222    Replicas: 222,221,220    Isr: 221,220,222
    Topic: __consumer_offsets    Partition: 8    Leader: 220    Replicas: 220,222,221    Isr: 221,222,220
-> 半兽人 3年前

而且我的磁盘要满了,我现在只能先停掉kafka集群,现在滞后的offset每个分区5000W+的数据

TOPIC                   PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
study_user_action_topic 0          1281716         55029278        53747562        -               -               -
study_user_action_topic 1          1500703         55032261        53531558        -               -               -
study_user_action_topic 2          1351471         55051204        53699733        -               -               -
study_user_action_topic 3          1123501         55030570        53907069        -               -               -
半兽人 -> 3年前

ok,主题study_user_action_topic是正常的。
你追加一个消费者组名,然后进行测试看看。

kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic study_user_action_topic --group.id=g1

然后使用以下命令查看下g1消费者组的消费情况。

bin/kafka-consumer-groups.sh --bootstrap-server 127.0.0.1:9092 --describe --group g1
半兽人 -> 3年前

你也可以创建一个新的主题,进行测试,排除掉干扰。

-> 半兽人 3年前

之前遇到过一次,那次就是新建了一个topic,运行正常,每次遇到这种问题不能总是删掉了

半兽人 -> 3年前

不新建topic,新建个消费者组g1还会出现重复吗?
ps:你这个====换成12..9等不重复的数字吧,不太好观察。

-> 半兽人 3年前
[root@ecs-bd4b-0001 ~]# kafka-console-producer --broker-list ecs-bd4b-0002:9092,ecs-bd4b-0003:9092,ecs-bd4b-0004:9092 --topic study_user_action_topic
12345678987654321
[root@ecs-bd4b-0001 ~]# kafka-console-consumer --bootstrap-server ecs-bd4b-0002:9092,ecs-bd4b-0003:9092,ecs-bd4b-0004:9092 --topic study_user_action_topic | grep 12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
12345678987654321
``

^CProcessed a total of 321846 messages
[root@ecs-bd4b-0001 ~]# ^C
[root@ecs-bd4b-0001 ~]# kafka-topics --bootstrap-server ecs-bd4b-0002:9092,ecs-bd4b-0003:9092,ecs-bd4b-0004:9092 --describe 
Topic:study_user_action_topic PartitionCount:4  ReplicationFactor:2 Configs:min.insync.replicas=1,segment.bytes=1073741824,retention.ms=604800000,max.message.bytes=1000000,min.cleanable.dirty.ratio=0.5,unclean.leader.election.enable=false,retention.bytes=-1,delete.retention.ms=604800000
  Topic: study_user_action_topic  Partition: 0  Leader: 254 Replicas: 254,221 Isr: 254,221
  Topic: study_user_action_topic  Partition: 1  Leader: 221 Replicas: 221,222 Isr: 221,222
  Topic: study_user_action_topic  Partition: 2  Leader: 222 Replicas: 222,220 Isr: 220,222
  Topic: study_user_action_topic  Partition: 3  Leader: 220 Replicas: 220,254 Isr: 254,220
[root@ecs-bd4b-0001 ~]# kafka-consumer-groups  --bootstrap-server ecs-bd4b-0002:9092,ecs-bd4b-0003:9092,ecs-bd4b-0004:9092 --group FLINK_GROUP_1 --describe
Consumer group 'FLINK_GROUP_1' has no active members.
TOPIC                   PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
study_user_action_topic 0          1458300         66559446        65101146        -               -               -
study_user_action_topic 1          1679654         66581318        64901664        -               -               -
study_user_action_topic 2          1499159         66581024        65081865        -               -               -
study_user_action_topic 3          1265924         66560431        65294507        -               -               -
-> 半兽人 3年前

我用的kafka是 2.2.1-cdh6.3.1 版本

半兽人 -> 3年前

消费者没有指定组名。

半兽人 -> 3年前

你这个topic是不是有其他应用程序在使用呀?

-> 半兽人 3年前

对的,有生产者和消费者,今天我重启的时候,这两个应用都没有停掉,和这个有关系吗?

-> 半兽人 3年前

不用指定组名效果应该一样吧,我感觉不是消费者的问题,应该磁盘快满了,那个消费者把数据存入了redis中

-> 半兽人 3年前

重复写的数据量很大,频率也很高,每秒有不到十万的样子

半兽人 -> 3年前

你这个topic是不是有其他应用程序在使用呀?
类似flink或者流消息系统,数据又回写到了这个主题了?
我觉得这类影响的,八九不离十,kafka本身没问题。

如果要验证,消费的时候把offset输出一下,如果不同,则说明不是同一个生产发送的。

-> 半兽人 3年前

没有写回到这个topic,我也是在这个网站上有人遇到和我类似的问题,https://www.orchome.com/8975

半兽人 -> 3年前

好难,在猜个场景会导致这个现象:

  • 网络路由映射错误,导致互调,而产生无限轮询
-> 半兽人 3年前

哦,谢谢哈,我再查查吧

这是topic的详情,我使用

kafka-console-producer --broker-list 127.0.0.1:9092 --topic study_user_action_topic

当做生产者,生产了一条数据:=============================

使用

kafka-console-consumer --bootstrap-server 127.0.0.1:9092 --topic study_user_action_topic

发现出现大量重复的 =============================

你的答案

查看kafka相关的其他问题或提一个您自己的问题