【问题标题】:AWS DynamoDB client best practice (MVC app)AWS DynamoDB 客户端最佳实践(MVC 应用程序)
【发布时间】:2014-04-04 10:11:09
【问题描述】:

我正在努力将一些数据访问移植到高流量应用中的 dynamo DB。一些背景知识 - 该应用程序收集了大量数据,并且一些特定的表在传统数据库中导致了性能问题。因此,通过对数据布局进行一些重新设计和一些更改,我们能够使它们很好地适应 DynamoDB 细分市场。

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

有没有人有过扩展 AWS 开发工具包的经验?

谢谢 山姆

【问题讨论】:

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


    【解决方案1】:

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

    如果您为不同的线程创建单独的客户端,肯定会减慢进程。

    所以我建议你在这里采取中间的方法,

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

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

    批量操作可用于.Net aws sdk

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

    【讨论】:

    • 感谢您的支持 - 您能否确认 .NET SDK 确实如此?
    • @ItalianJob - 我认为 Java 和 PHP 也是如此。对于 .net,我们可以选择使用批处理作业。请查看编辑,如果有帮助..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-01
    • 1970-01-01
    • 2012-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多