Я хочу сначала уточнить кое-что о контрольных точках, что может изменить вашу точку зрения.Если я не совсем неправильно понял ваш вопрос, он меньше «манипулирует» механизмом контрольных точек и более «использует его по назначению».
- Контрольные точки - это, по сути, механизм, позволяющий перезапустить потоковую обработку изпоследняя контрольная точка (вместо самой ранней доступной записи или «сейчас»).
- Пропуск контрольной точки НЕ означает автоматически, что записи будут автоматически повторяться со следующей партией - вам нужно будет обработать исключение, перезапустив процессор обработки записей с некоторой позиции потока перед ошибкой (обычно это «последняя контрольная точка» в порядкечтобы сделать это.
В общем, цель состоит в том, чтобы использовать Kinesis для управления полезной обработкой - обычно повторная обработка дублирующих записей бесполезна (и просто стоит ваших денег, выплачиваемых в AWS). Проверка контрольных точек часто означает меньшепотеря времени и денег на обработку дубликатов записей.
Вы можете создавать контрольные точки на основе времени (каждые X секунд), записи (каждые Y записей), каждой партии, никогда или чего угодно - все зависито том, сколько отходов вы можете допустить в случае сбоя.
Примечание: имейте в виду, что механизм контрольных точек поддерживается таблицей DynamoDB, поэтому существуют некоторые незначительные затраты (убедитесь, что у вас естьдостаточная пропускная способность таблицы) делать это слишком часто.