AWS(EC2 和 RDS)跨区域性能问题

AWS(EC2 和 RDS)跨区域性能问题

我在日本有 RDS 服务器和两个 EC2 实例,一个在欧盟,另一个在日本。

我正在日本 EC2 实例上运行一个连接到 RDS(日本)的应用程序。在这个应用程序中,我只是同时在 200 个线程中从数据库中选择数据,它运行良好,没有任何错误。

但是,当我在欧盟的 EC2 实例上运行相同的应用程序时,使用 200 个线程与当时联系 RDS(日本)的线程,我收到以下错误..

System.InvalidOperationException:超时已过期。在从池中获取连接之前已超过超时期限。发生这种情况的原因可能是所有池连接均在使用中,并且已达到最大池大小。

显然,欧盟EC2和日本RDS之间会存在网络延迟。

是否有任何设置可以帮助我忽略此错误并成功从欧盟的 EC2 实例联系到日本 RDS 的 200 个连接?

答案1

正如您之前提到的,欧盟和日本之间存在一些网络延迟。我猜大多数应用程序都不是为这样的设置而设计的 - 通常应用服务器和数据库服务器彼此靠近。

我能想到几种解决方法:

  • 增加应用程序中的超时设置
  • 为 RDS 连接启用压缩
  • 如果可行的话,使用某种区域到区域的复制
  • 如果您正在运行 Web 应用程序,请在 EU 中创建一个 (http) 代理服务器
  • 尝试极光,支持跨区域复制

相关内容