Весенняя Кафка — увеличение параллелизма создает больше дубликатов

#spring #spring-boot #apache-kafka #kafka-consumer-api #spring-kafka

Вопрос:

Тема A создана с разделом 12 , А потребитель spring Kafka начал с параллелизма 10 в качестве приложения для загрузки spring. При размещении 1000 сообщений в теме нет проблем с дублированием , так как все 1000 сообщений были израсходованы , но при увеличении загрузки 10 тыс. сообщений на 100 Т / с, в итоге потребитель получил 10 тыс. 8,5 Тыс. сообщений как дубликаты с 10 параллелизмом, но для одного параллелизма все работает нормально ( дубликатов не найдено )

Включение автоматической фиксации является ложным и выполняется вручную после обработки сообщения .

Время обработки одного сообщения составляет 300 миллисекунд

Изменение баланса потребителей происходит из-за того, что были созданы дубликаты.

Как преодолеть эту ситуацию, когда мы обрабатываем больше сообщений в Кафке ?

Комментарии:

1. Какова конфигурация вашего потребительского приложения? Я не думаю, что есть проблема со стороны производителя, поэтому было бы здорово, если бы у вас был какой-нибудь потребительский проект, с которым вы могли бы поиграть.

2. Вы действительно получаете дубликаты? Или ваш слушатель не является потокобезопасным? Если вы получаете перебалансировку из-за медленного потребителя, уменьшите max.poll.records или увеличьте max.poll.interval.ms .

3. артем Билан , включить автоматическую фиксацию ложно в конфигурации потребителя и параллелизм прослушивателя как 10 , остальные конфигурации по умолчанию

4. Привет, Гэри , да , при огромной нагрузке я получаю больше дубликатов , почти 80% сообщений дублировались, да, я пытался уменьшить максимальную запись опроса до 50 и 200, у него не было дубликатов на 50 и несколько дубликатов на 200, но это снижает производительность. Мне не нужно иметь дубликатов с высокой производительностью . Ищете EOS для потребителей с хорошей производительностью

5. Использует ли производитель транзакции или включена идемпотенция?