Стратегия максимальной пропускной способности с 6 потребителями Kafka, когда обработка каждого сообщения требует длительного времени - PullRequest
0 голосов
/ 28 мая 2020

Рассмотрим такой сценарий: Kafka topi c с 6 разделами. Spring Java Kafka Consumer Application с 6 репликами, каждая из которых имеет дело с одним из разделов.

Проблема, с которой я столкнулся, заключается в том, что обработка каждого сообщения в потребителе занимает много времени (~ 20 секунд), так как ему нужно вызывать очень медленную внешнюю систему.

Так что даже хотя я подготовил 6 разделов / реплик, у меня возникло узкое место, в котором 6 потребителей блокируют ~ 20 секунд на сообщение, что означает пропускную способность 6 сообщений каждые 20 секунд !!

Не могли бы вы предложить способы ускорить этот сценарий с учетом того, что я не могу изменить поведение внешней системы?

1 Ответ

0 голосов
/ 28 мая 2020

Увеличьте количество разделов и параллелизм в каждом экземпляре.

Количество разделов должно быть >= instances * concurrency.

...