AWS RDS中的负载平衡或只读副本

问题描述 投票:0回答:1

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个回答
0
投票

是否可以将我的GET请求分发到RDS(SQL Server),以便它可以快速从SQL Server返回500个项目?

  • 您将在您的应用程序中有一个路由器,它将请求路由到只读副本(可能很多)。
  • 您可以为该用例提供具有不同实例类型的只读副本,并具有增强的容量。
  • 您可以尝试使用内存缓存,它可以减少响应时间,并且可以将读取工作负载分担给只读副本。

是否有可能在不更改任何代码或不更改现有体系结构的情况下(都从.net到SQL端)实现?

  • 基于documentation“应用程序可以连接到只读副本,就像连接到任何数据库实例一样。”这意味着您的应用程序需要进行其他修改才能支持用例。

我应该尝试哪些不同的方法来改善此性能?

  • 具有读取容量的内存缓存和实例类型(与上面的建议相同)

只读副本的定价细节如何?

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.