有没有人想出如何扩展亚马逊RDS阅读副本?

Tom*_*omb 16 mysql replication amazon-web-services amazon-rds

我最近设置了一个只读副本,以便从我的Amazon多可用区RDS实例中获取一些读取负载.亚马逊文档明确指出,"由您的应用程序决定如何在您的只读副本中分配读取流量".

有没有人想出一种可管理的方式来扩展只读副本?将我的应用程序的不同部分硬编码为从特定副本读取,似乎不是一个非常可扩展的解决方案.有没有办法设置它类似于将EC2实例放在负载均衡器后面?

alf*_*day 7

一个AWS工程师提供一些深入的问题在这里.

以下是他回复的片段:

通常,您可以在以下3个逻辑位置对流量进行负载平衡:

  • 应用程序层 - 创建多个连接池并将所有读取发送到只读副本.
  • Web框架/中间件 - 一些Web框架内置了对多个数据库的支持[1].
  • 外部代理 - 您可以使用像MySQLproxy [2]这样的外部代理.

[1] - https://docs.djangoproject.com/en/dev/topics/db/multi-db/

[2] - https://launchpad.net/mysql-proxy


pra*_*tri 6

我认为HAProxy是在多个只读副本之间加载平衡的好选择.你可以有这样的配置:

 listen mysql-cluster 0.0.0.0:3306
     mode tcp
     balance roundrobin
     option mysql-check user root

     server db01 x.x.x.x:3306 check
     server db02 x.x.x.x:3306 check
     server db03 x.x.x.x:3306 check
Run Code Online (Sandbox Code Playgroud)

其中xxxx是副本端点.