DynamoDb Kinesis Data Stream 订购保证

问题描述 投票:0回答:1

我正在研究 DynamoDb 流与 DynamoDb Kinesis Data Streams。

Kinesis Data Streams 文档阅读:

Kinesis 数据流记录的显示顺序可能与项目发生更改时的顺序不同。相同的项目通知也可能在流中出现多次。您可以检查 ApproximateCreationDateTime 属性来识别项目修改发生的顺序,并识别重复记录。

我想知道它是否至少保证这两个

  • 是否保证与同一项目相关的事件是有序的?
  • 如果出现重复,是否保证最终给定项目的所有事件都会按顺序发出?例如:E1、E3、E2、E3...而不是 E1、E3、E2...

目前我正在将事件从 DynamoDb 流复制到 kinesis,我的解决方案没有提供比上述更好的保证。

amazon-dynamodb amazon-kinesis
1个回答
0
投票

对于 DynamoDB 与 KDS 的集成,项目使用

PutRecords
API 放入流中,而 kinesis 不提供任何订单保证:

Kinesis Data Streams 尝试处理每个 PutRecords 请求中的所有记录。单个记录失败不会停止后续记录的处理。因此,PutRecords 不保证记录的顺序。如果您需要按照写入流的顺序读取记录,请使用 PutRecord 而不是 PutRecords,并写入同一个分片。

因此,虽然相同的项目将进入相同的分片,但不能保证其顺序。

相比之下,DynamoDB Streams 保证项目级别更改的顺序。

© www.soinside.com 2019 - 2024. All rights reserved.