#apache-flink
#apache-flink
Вопрос:
Мы используем Flink для обработки огромного количества сеансов, каждый сеанс имеет уникальный идентификатор, каждую секунду происходят тысячи сеансов. Ключевой поток создается с помощью keyBy(SessionID)
WITHOUT window
. Мы обнаружили, что onTimer
обратный вызов всегда задерживается. Например, с context.timerService().registerProcessingTimeTimer(1hour)
, наихудший случай onTimer
вызова произошел примерно через 1,6 часа.
В чем основная причина таких задержек? Это потому, что таймеров так много, и они отмечены контрольными точками? Должны ли мы закрыть сеанс, чтобы уменьшить количество таймеров?
Комментарии:
1. Какую версию вы используете? Вы читаете из файлов?
2. @ArvidHeise 1.8, чтение из Kinesis.
3. Вы собираете какие-либо системные показатели там? Может быть, это связано с тем, что система слишком загружена? Здесь следует учитывать, что
onTimer
вызовы всегда синхронизируются, поэтому могут возникать небольшие задержки, если вы обрабатываете свои данные в течение более длительного периода времени.