Node.js、集群模式、日志聚合和logrotate

标签 node.js fork logrotate

Node 有一个“集群”模块,使用它可以创建一个派生子进程的父进程。所有的工作子进程都监听同一个套接字,因此它们之间(以及 CPU 之间)的负载平衡发生在内核中。

这样的过程还必须监视 child 的死亡情况并 fork 新的 child ,大概需要一些指数退避。如果这样一个进程将所有子进程的 stdout 聚合到一个文件,将它们的 stderr 聚合到另一个文件,并支持 SIGHUP 重新打开这些文件(用于 logrotate),那就太好了。

如果我理解正确的话,pm2 可以做到这一点。不过,除了 pm2 之外——是否有任何经过验证的模块/脚本/包可以做到这一点,或者我必须编写自己的模块/脚本/包?

已经投入生产的公司在做什么?

最佳答案

沃尔玛(至少最初)决定不使用集群,而是使用单 Node 进程运行每台机器。以下是他们的设置要点:https://gist.github.com/hueniverse/7686452

对于那些确实希望将其 Node 应用程序分布在多个 CPU 上的人来说,PM2 似乎是一个受欢迎的选择。

就日志聚合和日志轮转而言,我想基本的 unix logrotate 会有很多用途。

关于Node.js、集群模式、日志聚合和logrotate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23880879/

相关文章:

node.js 创建 bad_alloc

linux - 为什么 rsyslog 在 logrotate 之后启动失败?

linux - logrotate:删除超过 n 天的 tomcat/jboss 日志

java - 为什么 catalina.out 为空

node.js - 查找 Node 包上次更新的时间

javascript - 用于进行 API 调用的 JS 函数

c - 从管道读取时返回不正确的数据

c - c中的 fork ,waitpid问题

使用 cluster.fork() 调试 Node.js 进程

javascript - ReQL | RethinkDB错误: Expected type TABLE but found SINGLE_SELECTION