Обработка или отслеживание выдающихся сообщений Кафки

#apache-flink #flink-streaming

Вопрос:

Когда мы перезапускаем задание Flink, оно должно обработать миллионы невыполненных сообщений из нескольких тем Кафки, которые накопились, когда задание Flink не выполнялось. Внезапно, как только задание начнется, в задание Flink поступит поток входных сообщений. Задача, с которой мы сталкиваемся, состоит в том, чтобы обработать эти сообщения по нескольким темам в том порядке, в котором они произошли, т. Е. Обработать их в зависимости от времени события. Каковы наилучшие способы/решения для обработки этого сценария. Хорошая ли идея сортировать/разделять сообщения по ключу и сортировать их в зависимости от времени события с помощью a PriorityQueue и определять окно продолжительностью 1 минуту или более и выводить сообщения для последующей обработки. Или есть какие-то лучшие решения для решения этой проблемы? Есть ли способ решить эту проблему с помощью водяных знаков? Сообщения, возможно, были созданы/написаны с интервалом в несколько часов.