首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS + Node.js (v8.15.0) + Sequelize (v4.38.0)到Azure SQL的间歇性连接问题

CentOS + Node.js (v8.15.0) + Sequelize (v4.38.0)到Azure SQL的间歇性连接问题
EN

Stack Overflow用户
提问于 2021-04-14 14:19:08
回答 1查看 47关注 0票数 0

在我们的产品Azure托管SQL服务器上,我们间歇性地遇到了与Azure CentOS数据库的序列化连接问题。

我们的连接设置如下:

代码语言:javascript
复制
const sequelize = new Sequelize(dbDatabase, dbUser, dbPassword, {
 host: dbHost,
 dialect: 'mssql',
 operatorsAliases: false,
 pool: {
   max: 5092,
   min: 0,
   acquire: 10000,
   idle: 10000,
   evict: 500,
 },
 dialectOptions: {
 encrypt: false, // Use this if you're on Windows Azure
 requestTimeout: 60000 * 2,
 },
}

我们还将进程打开文件的ulimit设置为系统最大值。

我们使用PM2来运行服务器。

有时大约每10-20分钟出现在我们的日志中的两个错误是:

代码语言:javascript
复制
SequelizeConnectionError
    at Connection.connection.on (/home/AZ-admin/XXX/node_modules/sequelize/lib/dialects/mssql/connection-manager.js:75:16)
    at emitNone (events.js:106:13)
    at Connection.emit (events.js:208:7)
    at Connection.cleanupConnection (/home/AZ-admin/XXX/node_modules/tedious/lib/connection.js:568:16)
    at Connection.enter (/home/AZ-admin/XXX/node_modules/tedious/lib/connection.js:1961:12)
    at Connection.transitionTo (/home/AZ-admin/XXX/node_modules/tedious/lib/connection.js:993:26)
    at Connection.socketEnd (/home/AZ-admin/XXX/node_modules/tedious/lib/connection.js:1036:12)
    at Socket.<anonymous> (/home/AZ-admin/XXX/node_modules/tedious/lib/connection.js:877:18)
    at emitNone (events.js:111:20)
    at Socket.emit (events.js:208:7)
    at endReadableNT (_stream_readable.js:1064:12)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)

代码语言:javascript
复制
SequelizeHostNotFoundError: Failed to connect to xxx-prod.database.windows.net:1433 - getaddrinfo ENOTFOUND xxx-prod.database.windows.net
    at Connection.connection.on.err (/home/XXX/node_modules/sequelize/lib/dialects/mssql/connection-manager.js:98:22)
    at emitOne (events.js:116:13)
    at Connection.emit (events.js:211:7)
    at Connection.socketError (/home/XXX/node_modules/tedious/lib/connection.js:1016:14)
    at /home/XXX/node_modules/tedious/lib/connection.js:861:25
    at GetAddrInfoReqWrap.callback (/home/XXX/node_modules/tedious/lib/connector.js:69:18)
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (dns.js:79:17)

我们认为这可能是任何问题,从连接/文件被打开而不是关闭并达到限制,到我们的DNS查找域名的问题。

这似乎确实与流量的增加有一定的联系,但相关性并不是100%明确的。

EN

回答 1

Stack Overflow用户

发布于 2021-04-16 09:43:24

我看到您的示例代码缺少dialectOptions中的选项。

它应该如下所示。

代码语言:javascript
复制
"dialectOptions": {
    options: {
        encrypt: true,
    }
}

在创建连接mssqlmysql的示例项目之前。希望能对你有所帮助。有关更多细节,请查看我在下面的帖子中的答案。

Azure Database for MySQL - webapp nodejs

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67086450

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档