Nodejs·进程
之前对这部分的内容很感兴趣,没想到读起来有点晦涩,还是因为对服务器的知识不是很了解。
说道服务器一般人都会想到tomcat或者Jboss或者weblogic,现在流行起来的Node总让人不太放心,JS代码也能做服务器?其实不然,首先一个误区就是Node的服务器是JS写出来的....其实它只有表面暴露给用户使用的模块是用js写的,底层的很多东西还是由C/C++完成的。如果运行在不同的操作系统上,node还会基于操作系统切换底层的实现方式。
再说说Nodejs的特性——最让人印象深刻的就是单线程事件驱动....
首先单进程单线程,就会出现CPU利用不足的问题。毕竟现在的电脑基本都不是单核的,那么你只有一个进程跑,肯定有个核是在那休息的,这样效率上会让人觉得不够高。因此,Nodejs提供了一个模块——child_process,它可以创建子进程,这样就可以利用余下的CPU资源了。其实如果不是很庞大的应用,单进程就足够了,何必引入多线程增加复杂性呢。
另外,单进程也会有安全性的问题。比如一旦程序出现BUG,就会导致整个应用的崩溃。如果是线上的应用,那肯定会让人很头疼....这就证明你服务不可靠啊!因此就出现了一种方案,启动一个没有业务含义的主进程,通过这个主进程创建子进程进行业务的响应。这样既避免了单进程的安全问题,也方便进行负载均衡。只不过这个主进程一旦死掉了,整个应用一样会挂掉。但是子进程死掉了,完全可以捕获到异常信息,重新创建继承,恢复集群。
如何做一个高扩展、高可用的集群,这就涉及到集群的知识了,由于知识网不够扎实,就不能扩展了....平时也不会用Node当做生产环境的服务器,因此就不做过多的研究啦....先总结到这吧!

Nodejs·进程的更多相关文章
- [批处理]守护NodeJS进程
背景: 日常进行CI过程中,使用NodeJs方式:GIT更新->检测是否需要编译->调用IncrediBuilder编译->读取编译日志判断是否通过->调用7z打包 问题: 持 ...
- 使用PM2管理nodejs进程分享
摘要:pm2 是一个带有负载均衡功能的Node应用的进程管理器.本文主要介绍了详解使用PM2管理nodejs进程,小编觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小编过来看看吧,希望能帮助 ...
- update_notifier 造成nodejs进程数量增长的问题
最近运维老大j哥找到我说了一个事儿:某私有化部署的线上环境nodejs进程数量多达1000+,对比公版线上环境的66个进程数显得十分诡异.并且单个nodejs进程所占用swap空间也较大,也不释放空间 ...
- nodejs进程管理
NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用. 我们已经知道了Node ...
- Linux_CentOS下搭建Nodejs 生产环境-以及nodejs进程管理器pm2的使用
nodejs安装:https://www.cnblogs.com/loaderman/p/11596661.html nodejs 进程管理器 pm2 的使用 PM2 是一款非常优秀的 Node 进程 ...
- NodeJS 进程是如何退出的
有几种因素可以导致 NodeJS 进程退出.在这些因素中,有些是可预防的,比如代码抛出了一个异常:有些是不可预防的,比如内存耗尽.process 这个全局变量是一个 Event Emitter 实例, ...
- nodejs(三) --- nodejs进程与子进程
嗯,对于node的学习还远远不够,这里先做一个简单的api的记录,后续深入学习. 第一部分:nodejs中的全局对象之process进程对象 在node中的全局对象是global,相当于浏览器中的wi ...
- nodeJS进程管理器pm2
pm2是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的. PM2是开源的基于Nodejs的进程管 ...
- 学习使用PM2管理nodejs进程
在项目中,偶尔对命令会忘记一下,所以在此记录下pm2的常用命令. 1. pm2是什么?pm2 是一个带有负载均衡的Node应用的进程管理器, 它能够管理Node应用,还能够对应用的运行状态进行监控. ...
随机推荐
- Android软件设计---Dumpsys工具使用
Android中提供的dumpsys工具,用于分析Android性能.Android系统中,列出所有可用的dumpsys指令. 使用dumpsys查看memory信息: shell@aeon6735m ...
- 轮播神器swiper插件
Swiper中文网:http://www.swiper.com.cn/ Swiper- 是免费的,最现代化的移动触摸滑块硬件加速的转换和惊人的天然行为.它的目的是在移动网站,移动网络应用和移动本地/混 ...
- Cauchy 级数浓缩判别法
- UVA 12299 RMQ with Shifts(线段树:单点更新)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- 使用Maven自动部署Tomcat 6和Tomcat 7下Web应用
使用Maven自动部署Tomcat 6和Tomcat 7下Web应用 开启Tomcat远程管理权限 在tomcat的config目录下的tomcat-users.xml文件, <role rol ...
- 父窗口window.showModalDialog传值 子窗口window.returnValue返回值
父窗口打开子窗口页面: var fatherWindow = document.all.dealReason;//想传的值 win = window.showModalDialog(strUrl, f ...
- python 元类
转载自 http://blog.jobbole.com/21351/ 类也是对象 在理解元类之前,你需要先掌握Python中的类.Python中类的概念借鉴于Smalltalk,这显得有些奇特.在大 ...
- java-IO
框架图 IO(Input Output)流IO流用来处理设备之间的数据传输,Java对数据的操作是通过流的方式,用于操作流的对象都在IO包中. 流按操作数据分为两种:字节流与字符流 .流按流向分为:输 ...
- 【转】【Linux】 临界区,互斥量,信号量,事件的区别
原文地址:http://blog.itpub.net/10697500/viewspace-612045/ Linux中 四种进程或线程同步互斥的控制方法1.临界区:通过对多线程的串行化来访问公共资源 ...
- python 实现简单排序
今天偶得一本神奇的算法秘笈,据编辑说是一本easy and intresting 的书,所以我就开始翻开了. 书中作者用的是C语言,我最近正啃python 所以想着用python来解决作者的提问. 这 ...