Задержка чтения процессора Кафкой из исходного раздела - PullRequest
0 голосов
/ 08 октября 2019

У меня есть топология, которая состоит из двух исходных тем, которые читаются и обрабатываются двумя разными процессорами в приложении Kafka Streams. Один процессор A читает соответствующую тему и создает постоянное локальное хранилище, которое совместно используется другим процессором B в топологии.

Моя проблема заключается в том, что мне нужно как-то после перезапуска приостановить обработку процессора B для оченьНебольшое количество времени и дать процессору A время для чтения некоторых событий из своей темы, обновляя свое локальное хранилище, прежде чем процессор B начнет свою обработку.

Поскольку оба процессора принадлежат одной и той же субтопологии, я не могу использоватьThread.sleep в init (), например, потому что это приведет к остановке всего приложения.

Так есть ли способ заставить процессор B в топологии ждать / останавливаться в течение очень небольшого промежутка времени при перезапуске приложенияперед тем, как начать чтение из исходной темы и начать обработку событий?

1 Ответ

0 голосов
/ 10 октября 2019

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

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

...