1 Star 2 Fork 3

_rambo / nodejs_cluster_compute

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

nodejs_cluster_compute

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

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

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

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

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

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

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

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

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

TODO:

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

空文件

简介

弥补nodejs在密集型计算上的缺陷 展开 收起
NodeJS
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
NodeJS
1
https://gitee.com/_rambo/nodejs_cluster_compute.git
git@gitee.com:_rambo/nodejs_cluster_compute.git
_rambo
nodejs_cluster_compute
nodejs_cluster_compute
master

搜索帮助