【问题标题】:How to replay Kinesis records with KCL C#如何使用 KCL C# 重放 Kinesis 记录
【发布时间】:2016-02-15 14:32:26
【问题描述】:

我想在给定的时间跨度(或开始时间)内重放 Kinesis 记录

用例:

在应用程序失败时,某些流记录可能会被视为已处理,但实际上并未最终确定。即不保存在本地数据存储中。等系统恢复时,我们想提前 30 分钟(或任何给定数量)开始处理当前检查点的记录。

我遇到了这个https://github.com/scopely/kinesis-vcr 它将 Kinesis 记录保存到 S3 中,然后从 S3 重放事件

我想知道是否可以在没有 s3 的情况下重播记录,因为 Kinesis 会保留记录 24 小时。 24小时就够了。

【问题讨论】:

    标签: c# amazon-kinesis amazon-kcl


    【解决方案1】:

    基于时间的迭代器可让您的处理应用程序轻松地重播您的流。使用基于时间的迭代器,您可以从流中与时间戳对应的位置读取记录。

    这使您能够及时返回并在默认 24 小时或延长的 7 天数据保留期内的任何时间窗口重播流。 Java Streams API 有一个叫做 GetShardIterator 的东西,你可以尝试在 C# 中找到类似的东西

    【讨论】:

      【解决方案2】:

      您需要指定一个ShardIteratorType 的TIMESTAMP 所以。

      我认为这可能是错误的做法。最好保留成功处理的记录的序列号,并让您的应用程序使用它来处理下一个记录(开始使用 AT_SEQUENCE_NUMBER 的 ShardIteratorType)。如果您像这样以编程方式构建它,您就可以避免回溯 x 时间段的猜测工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-03
        • 1970-01-01
        • 1970-01-01
        • 2019-04-15
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多