【问题标题】:AWS RDS MySQL Connection countAWS RDS MySQL 连接数
【发布时间】:2020-06-29 20:28:15
【问题描述】:

我有一个通过 Lambda 连接到 AWS MySQL 数据库的简单程序。

应用程序的每个请求基本上都是对数据库的单个查询。因此,如果我有 3 个用户使用该应用程序,则不可能同时在数据库上运行超过 3 个查询。

然而,当我查看我的连接数时,它可能高达 15 个。我一直无法准确理解它应该如何工作。

如果代码编写正确,是否意味着如果同时有 3 个用户,我的连接数不应超过 3 个?

我一直在尝试找到一篇基本文章来解释这一点,但显然没有,因此我在这里。

谢谢。

编辑添加代码 以下是我的代码的精简版

var mysql = require('mysql');
var pool =[]; 

exports.handler = (event, context, callback) => {

   context.callbackWaitsForEmptyEventLoop = false;
   pool  = mysql.createPool({
     host     : 'host-details',
     user     : 'username',
     password : 'password',
     database : 'db'
   });
  
    return myFunc(event, context, callback, data.Username);
  }
};


const myFunc = async (event, context, callback) => {
  const query = 'SELECT * from db.table'; 
  const data = await dbQueryAsyncWL(context, callback, query);
  return callback(null, {data: data});
}


const dbQueryAsyncWL = async (context, callback, query) => {   
  return new Promise((resolve) => {
  context.callbackWaitsForEmptyEventLoop = false;
  pool.getConnection(function(error, connection) {
    connection.query(query, function (error, results, fields) {
      connection.release();
      if (error) {callback(error);} else {resolve(results);}
    });
  });
})
}

【问题讨论】:

  • 如何创建连接?您是否明确关闭这些连接?显示一些代码会很有帮助。

标签: mysql amazon-web-services aws-lambda amazon-rds


【解决方案1】:
pool  = mysql.createPool({
     host     : 'host-details',
     user     : 'username',
     password : 'password',
     database : 'db'
   });
  1. 检查连接池的大小/最小大小。
  2. 什么是连接池配置,例如在关闭连接之前的 idleTime 等。
  3. 您注意到连接池大小的哪些趋势,是稳定还是增加/减少?

【讨论】:

  • 首先,我很困惑,因为我不明白它应该如何表现。如果我的代码/系统设置正确,每个用户应该有 1 个连接吗? 1. 我如何做到这一点,在 AWS 上或通过在数据库上执行一些查询? 2. 我如何检查这个? 3. 我有一个新设置,我是唯一的用户,发生的情况是连接数上升到 7 左右,然后急剧下降,然后又开始缓慢上升,直到下降。
【解决方案2】:

看起来我的问题是我在exports.handler 中创建了池。一旦我把它移到外面......一张照片说明了一切。

https://i.ibb.co/KDvfdhp/Screen-Shot-2020-06-29-at-10-26-49-pm.png

【讨论】:

    猜你喜欢
    • 2022-10-13
    • 2020-08-13
    • 1970-01-01
    • 2018-10-23
    • 2020-10-19
    • 1970-01-01
    • 2017-09-07
    • 2019-05-03
    • 2018-05-13
    相关资源
    最近更新 更多