You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS RDS Proxy:Lambda中使用Sequelize连接RDS出现连接节流问题咨询

解决方案

所有调整均为配置层面修改,无需改动现有嵌套查询的业务逻辑。

1. 修正Sequelize连接池配置与初始化逻辑

你之前注释了连接池配置,且参数不符合Lambda+RDS Proxy的使用场景,调整规则如下:

  • Lambda单实例同一时间仅处理1个请求,连接池max必须设为1,无需多余连接
  • min设为0,避免无请求时长时间占用代理连接
  • evict时间设为14分钟(早于IAM令牌15分钟的有效期),避免使用过期令牌重连
  • 把Sequelize实例的初始化移到全局作用域,复用Lambda执行上下文的同一个连接对象,不要每次函数调用都新建实例

2. 调整RDS Proxy侧配置

这是降低后端连接数的核心配置:

  • 连接池复用模式改为事务级:只要你的业务没有使用会话级状态(比如临时表、session级别的SET参数),事务级模式下代理会在数据库事务结束后,自动把后端DB连接回收给公共池复用,不需要你主动关闭Lambda侧的连接,就能大幅降低后端连接占用
  • 把代理的空闲连接超时设置为30~60秒,自动回收长时间闲置的后端连接
  • 可根据业务情况调低代理的最大连接百分比,避免占满数据库的连接上限

调整后的代码示例

const { Sequelize } = require('sequelize');
// 全局存储sequelize实例与令牌信息,复用Lambda执行上下文
let sequelize_connection = null;
let proxyToken = null;
let tokenGenerateTime = 0;
const TOKEN_VALIDITY = 15 * 60 * 1000 - 60 * 1000; // 令牌有效期留1分钟余量

function generateProxyToken() {
    // 你原来生成IAM令牌的逻辑
    return '***latest iam token***';
}

function getSequelizeInstance() {
    // 令牌快过期或实例不存在时才重建
    if (!sequelize_connection || Date.now() - tokenGenerateTime > TOKEN_VALIDITY) {
        proxyToken = generateProxyToken();
        tokenGenerateTime = Date.now();
        const additionalConnectionDetails = {
            host: process.env.PROXY_ENDPOINT,
            schema: 'schemaname',
            searchPath: 'searchpath',
            dialect: 'postgres',
            dialectOptions: {
                prependSearchPath: true,
                ssl: {
                    require: true,
                    rejectUnauthorized: false 
                }
            },
            pool: {
                max: 1,
                min: 0,
                acquire: 3000,
                idle: 1000,
                evict: 840000 // 14分钟
            }
        }
        sequelize_connection = new Sequelize(dbCreds.app, dbCreds.userName, proxyToken, additionalConnectionDetails);
    }
    return sequelize_connection;
}

// 业务handler里直接调用getSequelizeInstance()获取连接即可

调整后10QPS的场景下,后端连接数可稳定维持在20以内,无需主动关闭连接。

内容的提问来源于stack exchange,提问作者neeraj mdas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 07:15:05