重新分发卡住的卡夫卡合作伙伴的邮件

时间:2018-11-22 04:40:09

标签: apache-kafka partition

我在kafka中有一个如下主题(通过/usr/hdp/2.6.5.0-292/kafka/bin/kafka-topics.sh --describe <rest of command> 通过

Topic:arrival_events    PartitionCount:12   ReplicationFactor:2 Configs:

Topic: arrival_events   Partition: 0    Leader: 1001    Replicas: 1001,1002 Isr: 1001,1002
Topic: arrival_events   Partition: 1    Leader: 1002    Replicas: 1002,1003 Isr: 1002,1003
Topic: arrival_events   Partition: 2    Leader: 1003    Replicas: 1003,1001 Isr: 1003,1001
Topic: arrival_events   Partition: 3    Leader: 1001    Replicas: 1001,1003 Isr: 1003,1001
Topic: arrival_events   Partition: 4    Leader: 1002    Replicas: 1002,1001 Isr: 1002,1001
Topic: arrival_events   Partition: 5    Leader: 1003    Replicas: 1003,1002 Isr: 1003,1002
Topic: arrival_events   Partition: 6    Leader: 1001    Replicas: 1001,1002 Isr: 1001,1002
Topic: arrival_events   Partition: 7    Leader: 1002    Replicas: 1002,1003 Isr: 1002,1003
Topic: arrival_events   Partition: 8    Leader: 1003    Replicas: 1003,1001 Isr: 1003,1001
Topic: arrival_events   Partition: 9    Leader: 1001    Replicas: 1001,1003 Isr: 1003,1001
Topic: arrival_events   Partition: 10   Leader: 1002    Replicas: 1002,1001 Isr: 1002,1001
Topic: arrival_events   Partition: 11   Leader: 1003    Replicas: 1003,1002 Isr: 1003,1002

经纪人每天大约收到5-8mil条消息(旅行模式)。
一切都很好,除了几个分区(不超过2-3个)被高滞后卡住了。
随着数据的不断流传,在几天之内,有时还会超过1-2mill。而其他分区的舒适度为0滞后

假设round robin也会强制读取其他分区,但我尝试将用户数减少到12个以下,但这无济于事。

关于减少延迟的任何选择的建议?消费者通过使用Java构建的数据流处理器来实现。

1 个答案:

答案 0 :(得分:0)

如果消息具有非空消息密钥,则滞后性较高的分区可能会比其余分区获得更多的数据。在这种情况下,如果不考虑任何键,则强制采用循环分区方案可能会有所益处。