我最近用我的基于 node-js 的聊天引擎尝试了无 RDS 服务器,除了一个问题外,几乎所有事情都运行良好。
我创建我的 MySQL 连接池如下,
host : config.database.host_read,
user: config.database.user,
password : config.database.password,
database : config.database.database,
port : config.database.port,
waitForConnections: true,
connectionLimit: 2000,
queueLimit: 10
});
问题是RDS无服务器数据库计数一直在增长和增长,因此它认为服务器很忙,无缘无故地升级到下一个级别。当它达到 2000 时,它只是回到 0 并重新开始,我认为问题是连接池即使没有用户使用它也能保持连接活动,这很好,这就是连接池的设计方式,但是在无服务器云环境中,理想情况下我希望连接在一定时间后过期, 我找不到任何文档
有人说要减少数据库参数等待超时,但实际上都没有奏效。 请参阅下面的数据库变量
connect_timeout
30
delayed_insert_timeout
300
innodb_flush_log_at_timeout
1
innodb_lock_wait_timeout
15
innodb_rollback_on_timeout
OFF
interactive_timeout
30
lock_wait_timeout
15
net_read_timeout
30
net_write_timeout
60
rpl_stop_slave_timeout
31536000
slave_net_timeout
3600
wait_timeout
15
关于如何解决这个问题的任何想法?
我写了这篇文章,讨论无服务器,lambda e db连接。有一些好的概念可以帮助您找到问题的根本原因。还有有关如何缓解连接池问题的示例和用例。
无服务器:Dynamodb x Mongodb x Aurora 无服务器