当前位置: 首页 > 知识库问答 >
问题:

AWS RDS代理不自行关闭数据库连接

葛修真
2023-03-14

使用pgxpool作为客户端池的导入,也使用RDS代理作为池

文件夹结构

  • 数据库

pghelper.go(这里使用单例 pgxPool.ConnectConfig(ctx, config) 并将连接实例返回给所有处理程序

  • 处理程序

内部处理程序调用连接池实例来运行数据库查询

注意:根据Stackoverflow中的几个文档,不关闭处理程序内或代码中的任何位置的实例

这是正确的方法吗?

由于ClientConnections正在关闭,但即使在RDS代理中接收到超时,数据库连接也不会关闭

超时设置

  1. λ:1分钟
  2. RDS代理:5分钟

我应该如何使池化按预期工作,因为我觉得池没有发生,并且数据库连接在超时后也没有关闭?

共有1个答案

谷梁星雨
2023-03-14

有两种类型的RDS代理连接

    < li >您的RDS代理应用程序 < li>RDS群集/实例的RDS代理

在代理配置中设置的超时适用于第一种类型的连接。即使没有来自应用程序的连接,代理也会维护与实际数据库实例的大量连接。

数据库连接在超时后未关闭

似乎没有办法从AWS控制台改变这种行为。但是您可以在AWS CLI中使用< code > modify-d b-proxy-target-group 命令来更改代理维护的最大空闲数据库连接数。

aws rds modify-db-proxy-target-group \
--target-group-name default \
--db-proxy-name <name-of-your-proxy> \
--connection-pool-config MaxConnectionsPercent=80,MaxIdleConnectionsPercent=20

这将把到数据库的连接限制为< code>max_connections的80%,把空闲连接限制为20%

文档中提到,这些值默认为100%作为到数据库的连接限制,50%作为到数据库的空闲连接限制。降低空闲连接的限制后,您应该开始看到代理维护更少的空闲连接

 类似资料:
  • 问题内容: 我有些困惑,我从阅读以下内容 你不需要关闭conn连接吗?如果conn.close()没有发生,那实际上是怎么回事? 我有一个正在维护的私有Web应用程序,该应用程序当前无法关闭任何一种形式,但是重要的应用程序真的是stmt,conn还是两者兼而有之? 该站点间歇性地关闭,但是服务器一直在说这是数据库连接问题,我怀疑它没有关闭,但是我不知道该关闭哪个。 问题答案: 使用完之后,你需要通

  • 问题内容: 我在hibernate状态下使用jpa。我有以下方法: 可以,但是它关闭了与数据库的连接。当秒被执行时 引发什么原因 我的配置: 编辑 我不知道为什么“ firstJDBCTemplateQuery”关闭数据库连接。如何解决这个问题? 堆栈跟踪: 编辑 我检查了堆栈跟踪。 编辑 我用 是 是 编辑调试结果 : 启动Beginin交易: /////////////////////////

  • 刚才发现每次调用完接口都有一堆连接没关掉( 如下图 ): 于是写了一段本地代码无限循环跑发现单独执行一次是可以立刻关闭连接的即便循环跑也一直是 10-30 来回跳我估计就是每次循环好就关闭了问题不大( 代码如下 ): 但是我的 flask 应用中每次请求完连接都在一直没搞懂什么问题( 代码如下 ): 请求指点分析什么问题

  • 我正在尝试使用python和MySQL开发药房管理系统。但我在连接数据库时遇到了问题。 下面是一些代码:

  • 我想通过pymongo阅读集合,但我得到以下错误: 回溯(最近的调用为last):文件“C://users/gsingh/pycharmprojects/mc/quizQuestionAnswers.py”,第21行,pprint.pprint(posts.find_one())文件“C:\users\gsingh\appdata\local\continuum\anaconda2\lib\sit

  • 问题内容: 通过Node MongoDB本机驱动程序使用Nodejs和MongoDB。需要检索一些文档,并进行修改,然后将其保存回来。这是一个例子: 具有异步性质,如果更新文档的过程花费更长的时间,则当光标到达文档末尾时,数据库连接将关闭。并非所有更新都保存到数据库。 如果省略,则所有文档均正确更新,但应用程序挂起,永不退出。 我看到一则帖子建议使用计数器跟踪更新次数,当回落到零时,然后关闭数据库