kotlin DynamoDB大型事务写入超时

fjaof16o  于 2022-11-25  发布在  Kotlin
关注(0)|答案(1)|浏览(123)

我有一个服务,它接收大小在5 - 10 k项之间变化的事件。我们将这些事件拆分成块,这些块需要写入事务中,因为我们需要进行一些后处理,这取决于块中所有项的成功写入。事件的排序很重要,因此我们不能将它们死信在以后处理。我们'我们遇到了一个问题,我们收到了非常大(10 k)的事件,它们堵塞了事件处理器,导致超时(当前设置为15秒)。我正在尝试找到一种方法来提高这些大事件的处理速度,以消除超时。
我愿意接受各种想法,但我很好奇并发运行事务写入是否存在任何缺陷?例如,将事件拆分为100个块,并让X个线程通过这些块并发写入dynamo。

rdlzhqv9

rdlzhqv91#

只要您有能力处理额外的吞吐量,就不必担心对DynamoDB的多线程写入。
我还建议尝试小批量生产,比如一批100件产品,如果其中一件产品因为任何原因而失败,那么所有产品都会失败。通常我建议批量生产的目标是大约10件。当然,这取决于您的使用情况。
此外,请确保没有线程同时以同一项为目标,因为这会导致写入冲突,从而导致大量批处理失败。
总之,批量越小越好,确保您的表有足够的容量,并确保您不会同时遇到相同的项目。

相关问题