Я создаю приложение Kafka Consumer, которое принимает сообщения из темы Kafka и выполняет задачу обновления базы данных.Сообщения создаются большими партиями один раз в день, поэтому за 10 минут в теме загружается около 1 миллиона сообщений.Тема имеет 8 разделов.
Spring Kafka Consumer (аннотированный @KafkaListener и использующий ConcurrentKafkaListenerContainerFactory) запускается в очень короткие партии.
Размер пакета иногда составляет всего 1 или 2 сообщения.Это помогло бы повысить производительность, если бы оно могло потреблять около 1000 сообщений одновременно и обрабатывать их вместе (например, я мог бы обновить базу данных в одном обновлении SQL) вместо подключения к базе данных для каждого сообщения.
IЯ уже пытался уменьшить параллелизм на фабрике, чтобы избежать нескольких потоков, потребляющих меньшее количество сообщений.
Я также увеличил свойство socket.send.buffer.bytes в файле server.properties Кафки, чтобы1024000, от 102400.
Эти шаги не увеличили размер партии.
Есть ли какая-либо другая конфигурация, которую я мог бы использовать для увеличения размера ванны потребителя?