2016-02-15 2 views
0

Я хочу Replay KINESIS записей по заданному TimeSpan, (или время начала)Как повторить KINESIS записи с KCL C#

использования:

на сбоя приложения, некоторые потоковые записи могут быть считается обработанным, но фактически не завершенным. т.е. не сохраняются в локальном хранилище данных. поэтому при восстановлении системы мы хотели бы начать обработку записей за 30 минут до (или любого заданного числа) текущей контрольной точки.

Я наткнулся на эту https://github.com/scopely/kinesis-vcr она сохраняется KINESIS записи в S3, а затем воспроизвести события из S3

Я интересно, если это возможно, чтобы воспроизвести записи без s3, так как Kinesis Сохраняет записи в течение 24 часов. и 24 часа достаточно.

ответ

0

Итераторы, основанные на времени, позволяют вашим потокам легко воспроизводить ваши приложения обработки. Используя итераторы, основанные на времени, вы можете читать записи из позиции в потоке, соответствующей метке времени.

Это дает вам возможность вернуться во времени и воспроизвести поток для любого окна времени в течение 24-часового или расширенного 7-дневного периода хранения данных. API Java Streams имеет что-то, называемое GetShardIterator, вы можете попытаться найти что-то похожее на то, что в C#

0

Вам нужно указать ShardIteratorType TIMESTAMP, поэтому.

Я думаю, что это, вероятно, неправильный путь. Лучше всего сохранить порядковый номер успешно обработанных записей и просто использовать приложение для обработки следующих записей (начните использовать ShardIteratorType для AT_SEQUENCE_NUMBER). Если вы его программно выстраиваете так, вы берете угадывание из возврата x периода времени.

Смежные вопросы