Amazon web services RDS代理与应用程序端代理(如C3P0)

Amazon web services RDS代理与应用程序端代理(如C3P0),amazon-web-services,amazon-rds,amazon-rds-proxy,Amazon Web Services,Amazon Rds,Amazon Rds Proxy,假设我想为运行在EC2/ECS/EKS中的Spring Boot应用程序使用RDS代理,我使用标准JDBC连接配置使一切都能正常工作。我是否仍然需要使用C3P0之类的库来配置应用程序端连接池,或者这是多余的 我假设使用RDS Proxy的好处是能够在连接到同一个DB的多个不同类型的应用程序(无服务器和无服务器)之间共享连接池。我将重复使用我刚才对另一个问题给出的答案: 中间有一个数据库代理,“连接”有两个独立的分支: 首先,存在从应用程序到代理的连接。您所谓的“应用程序端池”就是这种类型的连接。

假设我想为运行在EC2/ECS/EKS中的Spring Boot应用程序使用RDS代理,我使用标准JDBC连接配置使一切都能正常工作。我是否仍然需要使用C3P0之类的库来配置应用程序端连接池,或者这是多余的


我假设使用RDS Proxy的好处是能够在连接到同一个DB的多个不同类型的应用程序(无服务器和无服务器)之间共享连接池。

我将重复使用我刚才对另一个问题给出的答案:

中间有一个数据库代理,“连接”有两个独立的分支:

  • 首先,存在从应用程序到代理的连接。您所谓的“应用程序端池”就是这种类型的连接。由于创建这种类型的连接的新实例仍然存在开销,因此在应用程序中继续使用连接池可能是一个好主意
  • 其次,存在从代理到数据库的连接。这些连接由代理管理。此类型的连接数由代理配置控制。如果将此配置设置为100%,则允许代理使用多达,而其他客户端可能缺少连接
  • 因此,应用程序连接池不是冗余的。当应用程序想要使用连接时,它需要从其本地池获取连接。然后,代理需要将其与数据库的连接配对。代理将在可能的情况下重用与数据库的连接(这种技术也被称为)

    或者,引用官方文档:“您可以同时打开多个到代理的连接,并且代理可以保留较少数量的到DB实例或集群的连接。这样做可以进一步减少数据库服务器上连接的内存开销。这种技术还可以减少“连接过多”错误的发生。”


    回到您最初的问题,是的,“跨多个不同类型的应用程序共享连接池”是一个好处:您不必配置不同的应用程序连接池以保持在数据库的
    max\u connections
    值内。RDS代理的其他好处,包括效率、故障切换、安全性等,将在中介绍。

    这取决于您的体系结构。有些人仍然同时使用DB级代理和应用程序级连接池。(例如:Elixer应用程序)但最终DB级代理将拥有更多的优势