AWS DynamoDB客户端最佳实践(MVC应用程序)

时间:2014-04-04 10:11:09

标签: asp.net-mvc amazon-web-services amazon-dynamodb

我正努力在高流量应用中移植对Dynamo数据库的一些数据访问。一些背景 - 该应用程序收集了大量数据,一些特定的表导致传统数据库中的性能问题。因此,通过一些重新设计和对数据布局的一些更改,我们已经能够很好地适应DynamoDB的利基。

我的问题是使用/创建客户端对象。 SDK文档建议最好创建一个客户端并在多个线程之间共享它,因此在我的存储库实现中,我将客户端定义为一个懒惰的单例。这意味着它将被创建一次,所有请求将共享同一个客户端(目前每分钟大约有4000个请求,但随着我们的测试结束并开始推广产品,可能会大量增长)。

有没有人有过制作AWS SDK规模的经验?

由于 萨姆

1 个答案:

答案 0 :(得分:1)

当您创建一个客户端并与多个线程共享时,在某个SDK中,只有一个线程可以在一个时间点使用客户端。

当然,如果你为不同的线程创建单独的客户端,它将会减慢这个过程。

所以我建议你采取中间方法,

  
    

最大化HTTP连接池大小,以便允许创建更多数量的客户端。

         

然后你跟随客户对象的共享。

  

批量操作可用于.Net aws sdk

http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/BatchOperationsORM.html