【问题标题】:Load balancing Or Read replica in AWS RDSAWS RDS 中的负载均衡或只读副本
【发布时间】:2020-05-04 18:08:49
【问题描述】:

ASP.net MVC 应用程序位于 EC2 中并与 RDS (SQL Server) 交互。应用程序通过 NHibernate 向 RDS 发送 Bulk GET 请求(API 调用)以获取项目。应用程序性能非常缓慢,因为有时它会进行大约 500 次 GET API 调用以从数据库中获取 500 个项目(注意 - 从数据库中获取项目有其自己的存储过程/逻辑)

我指的是这个来了解缩放 RDS https://aws.amazon.com/blogs/database/scaling-your-amazon-rds-instance-vertically-and-horizontally/https://aws.amazon.com/premiumsupport/knowledge-center/requests-rds-read-replicas/

但是,没有太多线索支持我的业务场景。

我的问题是(考虑到上述情况):

  1. 有什么方法可以将我的 GET 请求分发到 RDS (SQL Server) 以便它可以快速从 SQL Server 返回 500 项?

  2. 是否有可能在没有任何代码或现有架构更改的情况下实现这一点(无论是从 .net 还是 SQL 端)?

  3. 我应该尝试哪些不同的方法来提高此性能?

  4. 只读副本的定价详情是什么?

注意:应用程序既可以读取也可以写入。而且,我更关心这个特定的 GET API 调用。

谢谢。

【问题讨论】:

    标签: amazon-rds aws-rds-data-service


    【解决方案1】:

    有什么方法可以将我的 GET 请求分发到 RDS(SQL Server),以便它可以快速从 SQL Server 返回 500 项?

    • 您的应用程序中需要有一个路由器,它将请求路由到只读副本(可以是多个)。
    • 您可以配置具有不同实例类型的只读副本,并针对该用例提供增强的容量。
    • 您可以尝试内存缓存,它可以减少响应时间并可以将读取工作负载转移到只读副本。

    是否有可能在没有任何代码或现有架构更改的情况下实现这一点(都来自 .net 和 SQL 端)?

    • 基于documentation“应用程序可以像连接到任何数据库实例一样连接到只读副本。”这意味着您的应用程序需要额外修改以支持该用例。

    我应该尝试哪些不同的方法来提高这种性能?

    • 具有增强读取能力的内存缓存和实例类型(上述建议相同)

    只读副本的定价详情是什么?

    • 这取决于您提供的实例类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-18
      • 1970-01-01
      相关资源
      最近更新 更多