4

作为这个问题的后续

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

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

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

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

4

1 回答 1

4

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

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

于 2021-02-04T01:54:50.767 回答