我可以为多个 KCL 应用程序使用一个租约 table 吗?

Can I use one lease table for multiple KCL applications?

我们正在构建一项基于 Kinesis / DynamoDB 流的服务,我们有一个问题(我们在官方文档中找不到)是我们是否可以使用相同的租约 table (DynamoDB) 来存储检查点使用同一流的不同 KCL 应用程序的信息。

非常感谢。

DynamoDB 租约 table 为您的应用程序存储每个分片的序列号,并可用于在您的应用程序重新启动时重新启动工作。一旦处理下一条记录,它就会不断更新每个分片的序列号。

话虽如此,如果您出于某种原因决定使用来自不同应用程序的相同租约 table,那么您将失去在发生故障时优雅地恢复流中位置的可能性,并且可以获得数据丢失。一般来说,在这种情况下,租约 table 将毫无用处,因为它反映的是最近处理的记录的状态,甚至不是单个应用程序的状态。在这种情况下,租约 table 状态将不一致并变得混乱。

综上所述 - 通常需要为不同的应用程序使用单独的租约 table。