我正努力在高流量应用中移植对Dynamo数据库的一些数据访问。一些背景 - 该应用程序收集了大量数据,一些特定的表导致传统数据库中的性能问题。因此,通过一些重新设计和对数据布局的一些更改,我们已经能够很好地适应DynamoDB的利基。
我的问题是使用/创建客户端对象。 SDK文档建议最好创建一个客户端并在多个线程之间共享它,因此在我的存储库实现中,我将客户端定义为一个懒惰的单例。这意味着它将被创建一次,所有请求将共享同一个客户端(目前每分钟大约有4000个请求,但随着我们的测试结束并开始推广产品,可能会大量增长)。
有没有人有过制作AWS SDK规模的经验?
由于 萨姆
答案 0 :(得分:1)
当您创建一个客户端并与多个线程共享时,在某个SDK中,只有一个线程可以在一个时间点使用客户端。
当然,如果你为不同的线程创建单独的客户端,它将会减慢这个过程。
所以我建议你采取中间方法,
最大化HTTP连接池大小,以便允许创建更多数量的客户端。
然后你跟随客户对象的共享。
批量操作可用于.Net aws sdk
http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BatchOperationsORM.html