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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS RDS中的负载平衡或只读副本相关的知识,希望对你有一定的参考价值。

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调用更加关注。

谢谢。

答案

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

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

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

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

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

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

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

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

enter image description here

以上是关于AWS RDS中的负载平衡或只读副本的主要内容,如果未能解决你的问题,请参考以下文章

Spring Data JPA:如何对 RDS Aurora PostgreSQL 实例之间的读取查询进行负载平衡?

AWS Beanstalk SSL 负载平衡环境

EKS中的UDP负载平衡替代方案

AWS EC2 上的 Websocket 负载平衡

AWS 中的负载均衡器、侦听器目标、目标组有啥区别?

AWS Opsworks:通过 https 进行负载平衡