有用的内置Node.js APIs( 六 )


哈希值的计算永不结束 。该用户放弃了并尝试再次上传 。一次又一次 。整个应用程序最终因内存错误而崩溃 。
该问题通过在子进程中运行散列算法最终被解决 。Express应用程序保持稳定 , 因为它启动、监控并在计算时间过长时终止了计算 。
child process API允许你运行子进程,如有必要你可以监控并终止 。这里有三个选项:

  • spawn:生成子进程 。
  • fork:特殊类型的spawn,可以启动一个新的Node.js进程 。
  • exec:生成shell并运行一条命令 。运行结果被缓冲,当进行结束时返回一个回调函数 。
不像worker线程,子进程独立于Node.js主脚本,并且无法访问相同的内存 。
Clusters当你的Node.js应用程序在单核上运行时,你的64核服务器CPU是否没有得到充分利用?Cluster允许你fork任何数量的相同进程来更有效地处理负载 。
对于os.cpus()返回的每个CPU,初始的主进程可能会fork自己一次 。当一个进程失败时,它也可以处理重启,并在fork的进程之间代理通信信息 。
集群的工作效果惊人 , 但你的代码可能变得复杂 。更简单和更强大的选择包括:
  • 进程管理器比如PM2,它提供了一个自动集群模式
  • 容器管理系统,如Docker或Kubernetes
都可以启动、监控和重启同一个Node.js应用程序的多个独立实例 。即使有一个失败了,该应用程序也会保持活动状态 。
总结本文提供了一个比较有用的Node.js API的例子 , 但我鼓励你浏览文档,自己去发现它们 。文档总体上是好的 , 并展示了简单的例子,但它在某些地方可能是简略的 。
以上就是本文的所有内容,如果对你有所帮助,欢迎点赞收藏转发~
  • 本文译自:https://www.sitepoint.com/useful-built-in-node-js-apis/
  • 作者:Craig Buckler
【有用的内置Node.js APIs】

推荐阅读