node mysql timeout_Node-Mysql throwing connection timeout

My node.js app gives 5xx due to connection timeouts at random times. Here's how I connect and query: var mysql = require('mysql'); var config = { host: '172.10.1.1', port: 3306, user: 'user', password: 'pwd', database: 'mydb', connectionLimit: 15, queueLimit: 30 } var poolCluster = mysql.createPool(config); var queryDB = function(query, cb) { poolCluster.getConnection(function(err, connection) { if(err) { cb(err, null); } else { connection.query(query, function (err, rows) { connection.release(); cb(err, rows); }); } }); };

Also, in another alternate version, with connection pooling disabled, the code looks like this: queryDB = function(query, cb) { var connection = mysql.createConnection(config); connection.query(query, function(err, rows) { connection.end(); cb(err, rows); }); };

But both the setups give Error: connect ETIMEDOUT at Connection._handleConnectTimeout

It would be great if you could point out what could be going wrong with the connections. Thanks.

UPDATE

Since the node.js service was running in cluster mode, I thought maybe a race condition across the threads to acquire mysql connection resource from the shared connection pool is the reason. So I switched off the cluster mode to single thread mode and connection timeouts stopped.

Still I'm not convinced it was the race condition causing this issue. Any way to verify this?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值