CentOS&x2B;Node.js(v8.15.0)和#x2B;将(v4.38.0)续集到Azure SQL间歇性连接问题
在生产Azure托管的CentOS API服务器上,我们与Azure SQL数据库之间存在间歇性的Sequelize连接问题 我们的连接设置如下:CentOS&x2B;Node.js(v8.15.0)和#x2B;将(v4.38.0)续集到Azure SQL间歇性连接问题,node.js,azure,sequelize.js,azure-sql-database,database-connection,Node.js,Azure,Sequelize.js,Azure Sql Database,Database Connection,在生产Azure托管的CentOS API服务器上,我们与Azure SQL数据库之间存在间歇性的Sequelize连接问题 我们的连接设置如下: const sequelize = new Sequelize(dbDatabase, dbUser, dbPassword, { host: dbHost, dialect: 'mssql', operatorsAliases: false, pool: { max: 5092, min: 0, acquire: 1000
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分钟出现两个错误:
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)
我们认为这可能会导致任何问题,从连接/文件被打开和未关闭的问题,到DNS查找域名的问题
这似乎与流量的增加有一定的联系,但相关性不是100%清楚。我在
方言选项中看到您的示例代码缺少选项
它应该像下面这样
在此之前,我创建了一个示例项目来连接mssql
和mysql
。希望它能帮助你。更多详情,请在下面的帖子中查看我的答案
如果我的回复有帮助,请将其作为答案接受(单击回复旁边的标记选项,将其从灰色切换为填充)。请参阅我们添加了“加密:true”以及设置packetSize(我们在其他地方看到)并且都没有修复间歇性连接问题。没有加密集是否会导致间歇性问题?
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)
"dialectOptions": {
options: {
encrypt: true,
}
}