mysql – Google Cloud SQL无响应

前端之家收集整理的这篇文章主要介绍了mysql – Google Cloud SQL无响应前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我们正在使用Cloud sql数据库在Google Container Engine上运行Sails.js API,最近我们发现我们的一些端点一直在停滞,从不发送响应.

我有健康检查监测/ v1 /状态,当我得到以下简单的响应时,它注册了100%的正常运行时间;

status: function( req,res ){
    res.ok('Welcome to the API');       
}

一旦我们添加数据库查询,端点就会开始超时.它不会一直发生,但似乎是随机的,有时持续几个小时.这就是我们将查询更改为;

status: function( req,res ){
    Email.findOne({ value: "someone@example.com" }).then(function( email ){
        res.ok('Welcome to the API');
    }).fail(function(err){
        res.serverError(err);
    });
}

相当可疑的是,这一切在我们的登台和开发环境中运行良好,只有在生产中部署代码时才会发生超时并且只在某些时间发生.在暂存和生产之间唯一的变化是我们连接的数据库和服务器上的负载.

正如我之前提到的,我们正在使用Google Cloud SQLSails-MySQL适配器.我们从生产服务器有以下错误堆栈;

AdapterError: Invalid connection name specified
at getConnectionObject (/app/node_modules/sails-MysqL/lib/adapter.js:1182:35)
at spawnConnection (/app/node_modules/sails-MysqL/lib/adapter.js:1097:7)
at Object.module.exports.adapter.find (/app/node_modules/sails-MysqL/lib/adapter.js:801:16)
at module.exports.find (/app/node_modules/sails/node_modules/waterline/lib/waterline/adapter/dql.js:120:13)
at module.exports.findOne (/app/node_modules/sails/node_modules/waterline/lib/waterline/adapter/dql.js:163:10)
at _runOperation (/app/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:408:29)
at run (/app/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:69:8)
at bound.module.exports.findOne (/app/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:78:16)
at bound [as findOne] (/app/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
at Deferred.exec (/app/node_modules/sails/node_modules/waterline/lib/waterline/query/deferred.js:501:16)
at tryCatcher (/app/node_modules/sails/node_modules/waterline/node_modules/bluebird/js/main/util.js:26:23)
at ret (eval at 
Error (E_UNKNOWN) :: Encountered an unexpected error : 
Could not connect to MySQL: Error: Pool is closed.
at afterwards (/app/node_modules/sails-mysql/lib/connections/spawn.js:72:13)
at /app/node_modules/sails-mysql/lib/connections/spawn.js:40:7
at process._tickDomainCallback (node.js:381:11)

仅仅看错误,我很想说我们有错误的配置.但事实上它在某些时候起作用(以前一直工作正常!)让我相信在这里工作还有其他一些黑魔法.我们的Cloud SQL实例是D0(虽然我们已经尝试将大小增加到D4),我们的激活策略是“Always On”.

编辑:我见过其他人抱怨Google Cloud SQL例如. this SO post我怀疑,但我们已经将我们的数据库移动到Amazon RDS,我们仍然看到相同的问题,所以它一定是sails和MysqL适配器的问题.

这个问题导致每天停机数小时,我们需要解决,任何帮助都非常感谢!

最佳答案
这似乎是一个sails issue,并不一定与Cloud sql相关.

猜你在找的MySQL相关文章