Как увеличить количество сообщений, потребляемых Spring Kafka Consumer в каждой партии? - PullRequest
0 голосов
/ 11 мая 2018

Я создаю приложение Kafka Consumer, которое принимает сообщения из темы Kafka и выполняет задачу обновления базы данных.Сообщения создаются большими партиями один раз в день, поэтому за 10 минут в теме загружается около 1 миллиона сообщений.Тема имеет 8 разделов.

Spring Kafka Consumer (аннотированный @KafkaListener и использующий ConcurrentKafkaListenerContainerFactory) запускается в очень короткие партии.

Размер пакета иногда составляет всего 1 или 2 сообщения.Это помогло бы повысить производительность, если бы оно могло потреблять около 1000 сообщений одновременно и обрабатывать их вместе (например, я мог бы обновить базу данных в одном обновлении SQL) вместо подключения к базе данных для каждого сообщения.

IЯ уже пытался уменьшить параллелизм на фабрике, чтобы избежать нескольких потоков, потребляющих меньшее количество сообщений.

Я также увеличил свойство socket.send.buffer.bytes в файле server.properties Кафки, чтобы1024000, от 102400.

Эти шаги не увеличили размер партии.

Есть ли какая-либо другая конфигурация, которую я мог бы использовать для увеличения размера ванны потребителя?

1 Ответ

0 голосов
/ 11 мая 2018

См. Кафка потребительских свойств max.poll.records, fetch.min.bytes, fetch.max.wait.ms, fetch.max.bytes, max.partition.fetch.bytes.

Скорее всего fetch.min.bytes и fetch.max.wait.ms - это то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...