【发布时间】:2020-10-19 15:18:37
【问题描述】:
我目前正在使用 AWS lambda 连接到 AWS mysql RDS。我正在创建一个这样的池
pool = mysql.createPool({
host : 'host-details',
user : 'username',
password : 'password',
database : 'db'
});
现在,当应用程序的用户“做某事”时,它基本上只是通过我的代码进行连接,从 db 表中抓取数据,然后释放连接。所以假设有 10 个用户,他们都同时“做某事”这是否意味着:
-
此池中将有 10 个连接,并且一旦连接释放,连接计数就会回到 0?如果是这样,这是否意味着这个池(即使它有 50 个连接的限制)可以支持数千个用户,因为数据库查询仅持续几毫秒?
-
查看 AWS 中的 RDS 监控,有一个“数据库连接(计数)”的指标。上述情况是否意味着它将保持 1 个连接,因为它是 1 个池,还是会飙升至 10 个连接?
-
据我了解,如果我的连接池限制为 8 个,并且出现上述情况,其他 2 个连接将排队。是什么阻止我将连接限制设置得非常高,这只是数据库可以处理的一个因素吗?即,如果我看到我的数据库内存/cpu 性能开始出现问题,我是否将池连接限制向后缩放?反之亦然。
为了解决这个问题,我试图了解这一切是如何工作的,以便我可以正确设置我的数据库/代码,这样一旦开始扩展,事情就不会中断。
谢谢。
【问题讨论】:
标签: mysql amazon-web-services aws-lambda amazon-rds