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

Spring boot 当您已经有了应用程序端池时,您还需要AWS RDS代理吗?,spring-boot,amazon-rds,connector-j,amazon-rds-proxy,Spring Boot,Amazon Rds,Connector J,Amazon Rds Proxy,作为问题的后续步骤 当您已经有了应用程序端池时,您还需要AWS RDS代理吗 我有一个Springboot应用程序,它使用默认的HikariDataSource来管理db连接池。对于我们计划使用的数据库驱动程序是MariaDB Connector/J,因为它可以处理aurora故障切换,而且它也是AWS在its中推荐的一种。该应用程序具有相当稳定的小负载,没有太多峰值。但是,它应该是高度可用的 但是,我们还发现了RDS代理,它还管理数据库连接池和故障切换 我想使用RDS代理,这样我就可以减轻管理

作为问题的后续步骤

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

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

但是,我们还发现了RDS代理,它还管理数据库连接池和故障切换


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

正如您所指出的,AWS正在发布一个JDBC驱动程序,它也知道如何更快地进行故障切换。例如,它知道如何在故障转移后找到正确的DB实例,因此您不必担心。如果您对驱动程序的故障切换功能感到满意,则RDS Proxy没有帮助


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

我有一个理论,即RDS代理也将解决缓存的DNS问题。我还没有尝试,因为我还在研究阶段。我将在验证后再次评论。是的,RDS代理也将解决缓存的DNS问题:新的DB实例由代理发现,因此您不必等待每个客户端的DNS缓存刷新。