2014-04-04 72 views
0

我正在努力在高流量应用程序中移植一些数据访问发电机数据库。有点背景 - 应用程序收集的数据量非常大,一些特定的表格在传统的数据库中导致了性能问题。因此,通过对数据布局进行一些重新设计和一些更改,我们可以很好地使它们适合DynamoDB利基。AWS DynamoDB客户端最佳实践(MVC应用程序)

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

有没有人有任何使AWS SDK缩放的经验?

感谢 山姆

回答

1

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

当然,如果你为不同的线程创建不同的客户端,它会减慢进程。

所以我建议你在这里乘坐中间的办法,

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

然后你按照共享的客户端对象。

批量操作可用于净AWS SDK

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

+0

感谢这个 - 你可以确认这是绝对与.NET SDK的情况下? – ItalianJob

+0

@ItalianJob - 这也是Java和PHP的情况,我认为...对于.net,我们可以选择使用批处理作业。请参阅编辑,如果有帮助.. –

相关问题