Tom*_*omb 16 mysql replication amazon-web-services amazon-rds
我最近设置了一个只读副本,以便从我的Amazon多可用区RDS实例中获取一些读取负载.亚马逊文档明确指出,"由您的应用程序决定如何在您的只读副本中分配读取流量".
有没有人想出一种可管理的方式来扩展只读副本?将我的应用程序的不同部分硬编码为从特定副本读取,似乎不是一个非常可扩展的解决方案.有没有办法设置它类似于将EC2实例放在负载均衡器后面?
一个AWS工程师提供一些深入的问题在这里.
以下是他回复的片段:
通常,您可以在以下3个逻辑位置对流量进行负载平衡:
- 应用程序层 - 创建多个连接池并将所有读取发送到只读副本.
- Web框架/中间件 - 一些Web框架内置了对多个数据库的支持[1].
- 外部代理 - 您可以使用像MySQLproxy [2]这样的外部代理.
[1] - https://docs.djangoproject.com/en/dev/topics/db/multi-db/
我认为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是副本端点.
| 归档时间: |
|
| 查看次数: |
8554 次 |
| 最近记录: |