我在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构建的数据流处理器来实现。
答案 0 :(得分:0)
如果消息具有非空消息密钥,则滞后性较高的分区可能会比其余分区获得更多的数据。在这种情况下,如果不考虑任何键,则强制采用循环分区方案可能会有所益处。