Я использую alpakka kafka для потоковой передачи данных из тем kafka.Я использую:
Consumer
.committableSource(consumerSettings, Subscriptions.topics(topic))
Недавно я пытался спамить больше потребителей, таких как 3, по теме, состоящей из 15 разделов.Когда я подключаю больше потребителей с одинаковым идентификатором группы, он любезно разделяет 5 разделов на каждого потребителя, но, похоже, он не использует все разделы одновременно, кажется, что он читает один за другим или читает определенный раздел гораздо быстрее, чем другие..
|Partition|LogSize |Consumer Offset|Lag |
|0 |8,429,145| 6,087,144|2,342,001|
|1 |8,424,948| 6,223,257|2,201,691|
|2 |8,428,121| 7,764,854| 663,267|
|3 |8,421,528| 6,071,425|2,350,103|
|4 |8,434,659| 7,351,552|1,083,107|
|5 |8,428,323| 5,935,336|2,492,987|
|6 |8,424,974| 6,455,301|1,969,673|
|7 |8,431,820| 7,763,984| 667,836|
|8 |8,425,999| 6,370,962|2,055,037|
|9 |8,416,354| 6,681,093|1,735,261|
|10 |8,416,217| 6,814,949|1,601,268|
|11 |8,428,026| 5,878,703|2,549,323|
|12 |8,424,604| 8,424,589| 15|
|13 |8,431,019| 8,431,019| 0|
|14 |8,423,218| 8,423,218| 0|
Вот реальный пример производственного приложения, которое я запускаю.Поэтому у меня есть несколько вопросов:
Можно ли читать некоторые разделы намного быстрее, чем другие?
Обратите внимание, что такое поведение происходит только тогда, когда я запускаю более одного потребителя.
Должен ли я изменить способ, которым я потребляю?Должен ли я использовать источник для каждого раздела или есть другой вариант?
Обновление
Я подозревал, что это может произойти при подключении нескольких потребителей (подробнееодно приложение), но сегодня это произошло с использованием только одного потребителя, что можно увидеть, взглянув на группу потребителей, которая одинакова.
В то время, когда это произошло, у меня было 20 ММ сообщений, все еще ожидающих обработки (задержка).Вышеуказанная фотография сделана у менеджера Kafka, имеющегося у нас в компании.