使用AWS RDS跨区域复制的主数据库延迟



我的应用程序设置在3个地区(EU, AP, US)和主MySQL RDS驻留在EU -west-1,读取副本在其他地区。

这对于读查询非常有效,特定区域的应用程序连接到它的本地读副本RDS非常快,但是当我的应用程序需要执行写查询时,它必须连接到eu-west-1的主DB。

当从US或AP写入主DB时,延迟很大,通常需要2.5s左右才能完成插入。

我一直在努力寻找关于如何克服这个问题的任何信息,Aurora在论坛和全球数据库教程中出现了很多,但它需要复制实例类型,使用db。R5是最小的,当运行多个实例时,它很快就会变得非常昂贵。

有人遇到过跨区域写主数据库缓慢的问题吗?VPC对等是否有助于加快这一速度?

对于跨区域查询,您无法克服延迟,因为存在称为光速的限制。你必须通过限制所需的往返次数来解决这个问题。

您可以例如:

  • 使用批量插入(使用insert … values (…), (…), …在单个语句中插入多行);
  • 使用批量更新(使用do $$ begin update …; update …; update …; …, end; $$;在单个语句中更新多行-这可能有点棘手正确引用;
  • 禁用准备语句或在连接时准备它们;
  • 使用keepalive保持打开的连接;
  • 避免同步待机(synchronous_standby_names)。

相关内容

  • 没有找到相关文章

最新更新