0

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

我正在使用 1 个 KCL 工人和 5 个租约。在创建时,我的 Dynamo 表有 1 个分区(1 个 RCU 和 999WCU)。当我继续将数据发布到 dynamo 时,分区数会增加,活动分片数也会增加。在活动分片数为 5 之前,读取都很好。一旦超过 5,KCL 就无法从其中一个分片中读取(tps 正在下降)。

是否有任何我可以设置的配置/参数允许我使用固定的租约数从增长的分片中读取?

4

1 回答 1

1

您正在寻找maxLeasesPerWorker 属性

从javadoc:

即使有更多的分片需要处理,Worker 也不会获得超过指定的最大租约数。这可用于工作人员资源受限的情况,或者在部署期间少量工作人员在短时间内获取所有租约时防止租约颠簸。

请务必注意 javadoc 中的警告:

请注意,设置较低的值可能会导致数据丢失(例如,如果没有足够的工人在所有分片上取得进展)。在设置此属性的值时,必须确保有足够的工作人员来处理分片,并且应该考虑未来的重新分片、可能在父分片上阻塞的子分片、一些工作人员变得不健康等。

于 2018-06-13T17:52:46.063 回答