Перераспределять сообщения из застрявшего раздела кафки - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть тема, описанная в 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-2 миль.В то время как другие разделы удобно размещаются с задержкой 0

, я пытался уменьшить количество потребителей до 12, предполагая, что round robin также приведет к чтению для других разделов, но это не поможет.

Любое предложение о том, какой вариант я должен уменьшить это отставание?Потребители через процессор потоковой передачи данных, построенный с использованием Java.

1 Ответ

0 голосов
/ 22 ноября 2018

Если сообщения имеют ненулевые ключи сообщений, то, вероятно, разделы, которые имеют высокую задержку, получают больше данных, чем остальные.В этом случае может быть полезно принудительно использовать схему разбиения по кругам, независимо от ключей, если она не имеет никакого отношения к бизнес-логике.

...