0

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

  • 这是好习惯吗?
  • 它会在行为上产生某种不一致吗?
  • 您是否建议为每个 KCL 应用程序使用单独的租赁表?

非常感谢你。

4

1 回答 1

0

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

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

总而言之 - 通常需要为不同的应用程序使用单独的租约表。

于 2020-10-05T13:16:03.903 回答