Amazon dynamodb 有没有一种方法可以在没有任何问题的情况下,以固定数量的工人和租约读取Dynamo DB流

Amazon dynamodb 有没有一种方法可以在没有任何问题的情况下,以固定数量的工人和租约读取Dynamo DB流,amazon-dynamodb,amazon-kinesis,amazon-dynamodb-streams,amazon-kcl,Amazon Dynamodb,Amazon Kinesis,Amazon Dynamodb Streams,Amazon Kcl,我不断地将数据发布到启用了流的dynamoDB中。我正在使用KCL的DynamoDB apadter阅读这条流 我使用1名KCL员工和5份租约。在创建时,我的Dynamo表有1个分区(1个RCU和999WCU)。当我继续将数据发布到dynamo中时,分区的数量会增加,活动碎片的数量也会增加。在活动碎片数达到5之前,读取是正常的。一旦越过5,KCL就无法读取其中一个碎片(tps正在下降) 是否可以设置任何配置/参数,使我能够使用固定数量的租约读取不断增长的碎片?您正在查找 从javadoc: 即使

我不断地将数据发布到启用了流的dynamoDB中。我正在使用KCL的DynamoDB apadter阅读这条流

我使用1名KCL员工和5份租约。在创建时,我的Dynamo表有1个分区(1个RCU和999WCU)。当我继续将数据发布到dynamo中时,分区的数量会增加,活动碎片的数量也会增加。在活动碎片数达到5之前,读取是正常的。一旦越过5,KCL就无法读取其中一个碎片(tps正在下降)

是否可以设置任何配置/参数,使我能够使用固定数量的租约读取不断增长的碎片?

您正在查找

从javadoc:

即使有更多的碎片需要处理,工作者也不会获得超过指定的最大租约数。这可用于工作人员资源受限的场景,或在部署期间少量工作人员在短时间内选择所有租约时,防止租约波动

还要确保注意javadoc中的警告:

请注意,设置较低的值可能会导致数据丢失(例如,如果没有足够的工作人员在所有碎片上取得进展)。当设置该属性的值时,必须确保有足够的工人来处理碎片,并应考虑将来的重新洗刷、可能被家长碎片堵塞的儿童碎片、一些工人变得不健康等。
我能够通过为一个负责碎片分割的工人预先设定一个很好的租约数量来阅读它。现在,我面临另一个问题