当您已经有了应用程序端池时,您还需要 AWS RDS 代理吗?

dio*_*ned 5 amazon-rds connector-j spring-boot amazon-rds-proxy

作为这个问题的后续

当您已经有了应用程序端池时,您还需要 AWS RDS 代理吗?

我有一个 Springboot 应用程序,它使用默认的 HikariDataSource 来管理数据库连接池。我们计划使用的数据库驱动程序是 MariaDB Connector/J,因为它可以处理 aurora 故障转移,而且也是 AWS 在其文档中推荐的驱动程序。该应用程序具有相当稳定的小负载,没有太多峰值。但是,它应该具有高可用性。

但是,我们还发现 RDS 代理还可以管理数据库连接池和故障转移。

我想使用 RDS Proxy,以便减轻管理数据库连接池和处理应用程序故障转移的负担。但是,我似乎无法关闭 Springboot 中的应用程序端池(默认情况下它在那里)。而且我还需要一个驱动程序来连接数据库,所以我不妨使用 Connector/J。有了我拥有的这些堆栈/工具,RDS 代理是否太多且多余?

jto*_*ron 5

正如您所指出的,AWS 正在发布一个 JDBC 驱动程序,该驱动程序也知道如何进行更快的故障转移。例如,它知道如何在故障转移后找到正确的数据库实例,这样您就不必担心缓存的 DNS 信息。如果您对驱动程序的故障转移功能感到满意,那么 RDS Proxy 就没有帮助。

但是,RDS Proxy 仍然可以为您的场景增加价值。例如,假设您需要水平扩展应用程序。应用程序的每个实例都有自己的连接池,如果添加足够的实例,那么您将超出数据库的最大连接设置。RDS Proxy 通过处理来自应用程序的连接并将其复用为与数据库的连接,从而在这种情况下提供帮助。RDS Proxy 本身将尊重数据库的最大连接设置。

  • 是的,RDS Proxy 也将解决缓存的 DNS 问题:新的数据库实例由代理发现,因此您不必等待每个客户端的 DNS 缓存刷新。 (2认同)

归档时间:

查看次数:

2955 次

最近记录:

5 年,1 月 前