Обработка таймаутов Apache Flink в RichAsyncFunction - PullRequest
0 голосов
/ 05 июля 2018

Я использую Flink версии 1.5.0.

Официальный доктор говорит: Timeout Handling When an async I/O request times out, by default an exception is thrown and job is restarted. If you want to handle timeouts, you can override the AsyncFunction#timeout method.

1 - На самом деле, когда возникает исключение тайм-аута, в логах нет никакого понятия (любой уровень), и задание не завершается.

2 - В интерфейсе AsyncFunction нет времени ожидания метода:)

Почему это касается меня ->

Я использую AsyncDataStream.unorderedWait, который потребляет из kafka и обрабатывает результат с RichAsyncFunction. Фактически все сообщения были прочитаны (правильное смещение было передано zookeeper), но не все из них достигли RichAsyncFunction.asyncInvoke. Поскольку он не регистрирует исключения тайм-аута, мне просто интересно, может быть, он глотает (не показывает) и другие исключения.

Есть идеи? Большое спасибо!

1 Ответ

0 голосов
/ 05 июля 2018

Хорошо, похоже, я нашел причину:

AsyncDataStream.unorderedWait потребляет из потока и передает элементы в Оболочка RichAsyncFunction. Но элементы из потока не будут переданы asyncInvoke, если метод RichAsyncFunction.open все еще выполняется, и элементы молча умирают после того, как тайм-аут передан unorderedWait.

...