You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Aurora多写负载均衡难题咨询:是否需转回RDS实现多实例负载?

问题解答

一、Aurora 解决方案

Aurora 原生单主架构仅支持读副本负载均衡,但针对多写场景,你可以使用 Aurora Multi-Master 集群,这是专门为多写负载设计的架构:

  • 核心特性:集群内可部署多个主实例,所有实例均能处理读写请求,无需区分 Writer/Reader 端点
  • 流量转发:直接使用集群端点连接,Aurora 会自动在多个主实例间负载均衡写(及读)流量,无需手动拆分应用请求
  • 配置要点:创建 Aurora 集群时选择 Multi-Master 模式(支持 MySQL 和 PostgreSQL 兼容版),确保实例规格一致,集群会自动同步数据并处理冲突

你之前尝试自定义端点失败,是因为自定义端点默认关联读副本,而 Multi-Master 集群的所有实例都是主节点,直接用集群端点即可满足99%写操作的需求。

二、转回 RDS 实现多实例写负载均衡

RDS 原生不支持多主集群,需手动搭建主主复制 + 负载均衡层来实现:

1. 搭建 RDS 多主复制集群(以 MySQL 为例)

  • 创建第一个 RDS 实例,开启 binlog(参数组中设置 log_bin=1、server-id=1),创建复制专用账号并授权
  • 创建第二个 RDS 实例,设置不同的 server-id(如2),同样开启 binlog
  • 在两个实例间配置双向复制:分别在对方实例中执行 CHANGE MASTER TO 命令,指定对方的端点、复制账号和 binlog 位置
  • 调整自增参数避免主键冲突:设置 auto_increment_offset 为实例序号(如1和2),auto_increment_increment=2

2. 配置负载均衡层

  • 使用 AWS NLB(网络负载均衡器,适配数据库TCP流量),创建监听端口(如3306)
  • 创建目标组,将所有 RDS 主实例加入目标组,配置健康检查(例如执行 SELECT 1 验证数据库可用性)
  • 应用连接到 NLB 的端点,NLB 会自动将写请求分发到健康的 RDS 主实例

3. 注意事项

  • 需确保多主复制的一致性,避免数据冲突(如限制单表的写入来源,或使用乐观锁)
  • 定期监控复制延迟,及时处理异常实例
  • 如果是 PostgreSQL,可使用双向流复制或 pgpool-II 中间件辅助实现多写负载均衡

内容的提问来源于stack exchange,提问作者Sultan Muhammad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:57:58