node.js - TCP Socket服务器节点js冻结
问题描述
我有一个用节点 js 编写的 TCP 套接字服务器。服务器正在监听来自大约 150 个 GPS 跟踪器设备的数据,然后将数据实时插入数据库。问题是当设备较少时,我的服务器运行良好但是现在随着 gps 跟踪器设备的增加,我的服务器有时会冻结,这意味着它不会将数据插入我的数据库或执行任何功能。当我从终端检查时,它显示服务器正在运行。这是我正在使用的基本代码。请让我知道是否有更好的方法来处理节点中的多线程处理。
var net = require('net');
const cluster = require('cluster');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('death', function(worker) {
console.log('worker ' + worker.pid + ' died');
cluster.fork();
});
} else {
net.createServer(function(socket) {
console.log('received connection...');
socket.on("error", function(err) {
console.log("socket error: ")
console.log(err.stack);
socket.destroy();
});
socket.on('data', function(data) {
console.log(data.toString());
});
}
解决方案
推荐阅读
- java - 从 URL 中提取特定字符串
- javascript - 加载 json 列表并处理它
- session - 如果源 IP 不变,应如何通过我的负载均衡器将多个请求映射到同一物理服务器
- angular - ngx-datatable - 带有操作按钮的自定义列
- jquery - 试图在选择下拉列表中选择值但是它只给我文本值?联系表格 7
- wordpress - 将 WooCommerce 产品提要列出到亚马逊市场
- ios - VoiceOver 页面公告不正确
- php - 试图过滤品牌,但 brand_id 显示未定义
- mysql - 无法执行语句;嵌套异常是 org.hibernate.exception.GenericJDBCException:无法执行语句
- javascript - 如何使用 https 在本地网络上构建 gatsby 开发?