Kafka KStream OutOfOrderSequenceException - PullRequest
0 голосов
/ 12 февраля 2019

Наше приложение периодически встречает исключение OutOfOrderSequenceException в нашем коде потоков.Что приводит к остановке потока.

Реализация проста, 2 KStreams присоединяются и выводятся в другую тему.

При поиске решения этой исключительной ситуации OutOfOrderSequenceException я обнаружил ниже документацию по Confluent

https://docs.confluent.io/current/streams/concepts.html#out-of-order-handling

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

Если пользователи хотят обрабатывать такие неупорядоченные данные, как правило, им нужно разрешить своим приложениям ждать более продолжительное время, сохраняя свои состояния в течение времени ожидания, т.е.принятие компромиссных решений между задержкой, стоимостью и корректностью. В Kafka Streams пользователи могут настраивать свои оконные операторы для оконных агрегатов для достижения таких компромиссов (подробности можно найти в Руководстве разработчика) .

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Обновления: после обновления Kafka Brokers и версии KStream проблема, похоже, уменьшилась.

Кроме того, согласно рекомендации, https://kafka.apache.org/10/documentation/streams/developer-guide/config-streams.html#recommended-configuration-parameters-for-resiliency

Я обновил acks для всех,Коэффициент репликации уже был 3.

0 голосов
/ 12 февраля 2019

Из JavaDocs OutOfOrderSequenceException:

Это исключение указывает, что посредник получил неожиданный порядковый номер от производителя, что означает, что данные могли быть потеряны.Если производитель настроен только на идемпотентность (т. Е. Если установлено enable.idempotence, а transactional.id не настроено), можно продолжить отправку с тем же экземпляром производителя, но это может привести к переупорядочению отправленных записей.Для транзакционных производителей это фатальная ошибка, и вам следует закрыть производителя.

Порядковые номера - это внутренние номера для каждого сообщения, записанного в теме.

Поскольку этовнутренняя ошибка, хотя трудно сказать, что может быть основной причиной.

...