我正在使用节点的集群API和mongoose开始为节点编写工作队列。
我注意到很多libs已经这样做了,但是使用redis和叉。与使用集群API相比,是否有充分的理由进行分叉?
编辑,现在我也发现了这个:https://github.com/xk/node-threads-a-gogo --太多选项了!
我宁愿不添加红色的混合,因为我已经使用芒果。而且,我的需求非常松散,我希望持久化,但是对于第一个版本,我可以不使用它。
问题的第二部分:当今最稳定/使用的nodejs工作队列库是什么?
发布于 2014-01-21 16:20:24
发布于 2013-06-12 15:01:47
你试过https://github.com/rvagg/node-worker-farm了吗?它的重量非常轻,不需要单独的服务器。
发布于 2013-06-12 22:02:17
我个人喜欢集束大师。
https://github.com/isaacs/cluster-master
我喜欢集群主程序的原因是,除了添加逻辑以分叉进程之外,它所做的事情非常少,并使您能够管理正在运行的进程的数量,并提供一点日志记录/恢复功能来启动!我发现过度膨胀的过程管理库往往是不稳定的,有时甚至会放慢速度。
如果下列情况属实,此库将对您有好处:
上面列出的原因,是线程-a-gogo可能对您有好处的原因,相反的原因。如果您的代码中有一些地方需要在事件循环中完成大量的工作,那么就像线程a-gogo那样专门为这项工作启动一个“线程”是很棒的,因为您并不是提前确定要生成多少工作人员,而是在需要时生成它们来完成工作。注意:这也可能是不好的,如果有很多他们可能产生,如果你开始启动太多的过程,事情实际上可能陷入困境,但我离题了。
总之,如果您的模块已经在很大程度上是异步的,那么您真正需要的是一个工作池。若要将进程不侦听事件时的停机时间最小化,并最大限度地使用处理器数量,请执行以下操作。除非您有一个非常繁忙的同步调用,否则单个节点事件循环在利用处理器的单个核心时都会遇到困难。在这种情况下,您最好使用集群-主.我推荐的是做一些基准测试,看看你的程序在“最坏的情况”下可以使用多少单个核心。假设这是一个核心的33%。如果您有一个四核机器,那么您就告诉集群主启动您的12名工作人员。
希望这能帮上忙!
https://stackoverflow.com/questions/16904093
复制相似问题