避免代码注入与保障数据库交互安全
1. 进程分叉与守护
在服务器开发中,为了提高性能和资源利用率,我们可以使用进程分叉技术。以下代码展示了如何根据 CPU 核心数进行进程分叉:
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('disconnect', function(worker) {
console.error('disconnect!');
cluster.fork();
});
上述代码应放在 master.js 中,主服务器代码放在 index.js 里。这样做可以优雅地处理错误,让应用更高效地利用系统资源。不过,按 CPU 核心数进行进程分叉可能会使处理器阻塞,而且确定分叉数量没有固定规则,它取决于应用的结构和基础设施。如果机器上还有其他重要进程(如数据库),在分叉前需要考虑资源的使用情况。
当进程意外退出时,我们需要重启它,否则网站将不可用。不同操作系统和工具提供了多种重启进程的方法。在 Unix 系统下,可以将 Node 脚本守护化。此外,还有一些跨操作系统的 Node.js 模块可供选择,如 forever 和 PM2 。 forever 轻量级,而 PM2 功能丰富,具有自动集群化、负载均衡、日志聚合等特性,值得一试。
超级会员免费看
订阅专栏 解锁全文

10万+

被折叠的 条评论
为什么被折叠?



