Metrics
0
Watch 1 Star 0 Fork 1

_rambo / nodejs_cluster_computeNodeJS

Sign up for free
Explore and code with more than 2 million developers,Free private repositories !:)
Sign up
弥补nodejs在密集型计算上的缺陷 spread retract

Clone or download
_rambo authored first
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

nodejs_cluster_compute

众所周知,nodejs优势在于单线程 异步 并发 回调(好吧 这是我个人认为的优势)

但是正如网上nodejs开发工程师所说 nodejs成也异步,败也异步 。因为他在计算大量密集型计算的时候,往往发生难以想象的各种意外的阻塞。这时候nodejs只能等待其完成,才能处理下一个请求。

为了弥补nodejs在密集型计算上的缺陷。我们无外乎以下几种做法

  • 将同步的密集型计算,强制性的弄成异步回调的方式

  • 利用nodejs的cluster在需要的时候,新建一根线程。 交给他来计算。完成后利用process线程间事件通信机制来告诉我们,已经计算ok

  • 大名鼎鼎的rabbitMQ np模式。 简单粗燥的理解为

    • 在启动node的时候,就建一个线程,同步跑。
    • 该线程循环从数据库读取任务,有任务执行。
    • 使用方只需要只需要向任务队列中添加任务。
    • 等待任务被执行,并接受计算结果。

大家可以看到上面几种方式,无外乎都是将同步密集型计算 ===> 异步回调无阻塞 的基本理念。

这里暂时只给出了前两者的代码,第三种方法依赖太多。以后慢慢增加吧!

TODO:

  • 补充单元测试
  • 增加第三种方式的优化实现

Comments ( 0 )

You need to Sign in for post a comment

Help Search