Amazon表示,我的应用程序正在向读取副本分发通信量。
我的网站大多有访客--没有登录用户。因此,我想大多数数据库活动都是读取的。我应该将MySQL数据库连接设置为非登录用户的read副本和登录用户的源RDS实例?
我的一个RDS实例,它为几个网站提供动力,只是陷入了瓶颈,所以我有点恐慌,不知道现在该从哪里开始。
如果我要走的方向不对,请告诉我正确的道路。
发布于 2012-12-13 23:46:05
这都取决于您的应用程序(S)是什么,以及它们如何连接数据库和运行查询。
我见过的大多数应用程序都安装了两个数据库连接池/字符串。一个用于读取,另一个用于编写,应用程序代码将其查询指向适合查询的哪个池。但是,大多数应用程序在需要故障转移之前不会像这样编写,所以这可能需要进行一些编码。
您可能可以使用mysql-代理将特定查询筛选到只读后端。
如果负载配置文件允许的话,为每个应用程序运行一个单独的数据库实例,而不是通过读取来分割负载,也可能会带来更直接的好处。
发布于 2017-08-08 16:10:16
您可以使用路由53向读取副本分发通信量。基本上,您可以在vpc中创建一个域名,并将路由53配置为将请求转发到该域的N个副本。下面的链接有一个设置进程的视频演练,设置只需几秒钟。
https://aws.amazon.com/premiumsupport/knowledge-center/requests-rds-read-replicas/
然后在db连接urls中使用路由53域名。
发布于 2017-05-04 09:58:43
多读副本,两样不同的东西。MultiAZ创建一个“不可见的”备用,仅在故障转移/维护ie=AVAILABILITY期间使用。读取副本纯粹是为了加载/性能。
https://serverfault.com/questions/458014
复制