DynamoDB CDC事件排序:Kinesis与DynamoDB流对比及选型咨询
问题解答
1. 关于排序保证的理解是否正确?
你的理解完全正确:
- DynamoDB Streams:针对表中每一个被修改的项目,流中对应的变更记录顺序,和该项目实际被修改的顺序完全一致,这是流本身提供的强保证。
- Kinesis Data Streams(作为CDC使用时):本身不提供任何变更顺序的投递保证——哪怕是同一个项目的多次修改,对应的Kinesis记录也可能乱序到达消费端。只能通过每条记录的
timestamp字段,事后识别出实际的变更顺序,但没法依赖流的投递顺序来保证消费时的顺序性。
2. 新应用要求按插入顺序排列,该选择哪种流?
如果你的新应用业务逻辑依赖消费时必须严格遵循DynamoDB中记录的插入/变更顺序(比如后续处理必须按实际操作顺序执行,不能乱序),那么必须启用DynamoDB Streams。
如果只是需要在事后可以整理出正确的插入顺序,不需要消费过程中严格按顺序处理,那可以继续使用Kinesis Data Streams,但你需要在消费端自行实现基于timestamp的排序逻辑——这种方式在分布式消费场景下会增加复杂度,比如需要集中排序后再处理,成本较高。
内容的提问来源于stack exchange,提问作者Wonger
相关产品推荐
相关产品推荐

