为什么nodejs是单进程的_Nodejs·进程
之前對這部分的內容很感興趣,沒想到讀起來有點晦澀,還是因為對服務器的知識不是很了解。
說道服務器一般人都會想到tomcat或者Jboss或者weblogic,現在流行起來的Node總讓人不太放心,JS代碼也能做服務器?其實不然,首先一個誤區就是Node的服務器是JS寫出來的....其實它只有表面暴露給用戶使用的模塊是用js寫的,底層的很多東西還是由C/C++完成的。如果運行在不同的操作系統上,node還會基于操作系統切換底層的實現方式。
再說說Nodejs的特性——最讓人印象深刻的就是單線程事件驅動....
首先單進程單線程,就會出現CPU利用不足的問題。畢竟現在的電腦基本都不是單核的,那么你只有一個進程跑,肯定有個核是在那休息的,這樣效率上會讓人覺得不夠高。因此,Nodejs提供了一個模塊——child_process,它可以創建子進程,這樣就可以利用余下的CPU資源了。其實如果不是很龐大的應用,單進程就足夠了,何必引入多線程增加復雜性呢。
另外,單進程也會有安全性的問題。比如一旦程序出現BUG,就會導致整個應用的崩潰。如果是線上的應用,那肯定會讓人很頭疼....這就證明你服務不可靠啊!因此就出現了一種方案,啟動一個沒有業務含義的主進程,通過這個主進程創建子進程進行業務的響應。這樣既避免了單進程的安全問題,也方便進行負載均衡。只不過這個主進程一旦死掉了,整個應用一樣會掛掉。但是子進程死掉了,完全可以捕獲到異常信息,重新創建繼承,恢復集群。
如何做一個高擴展、高可用的集群,這就涉及到集群的知識了,由于知識網不夠扎實,就不能擴展了....平時也不會用Node當做生產環境的服務器,因此就不做過多的研究啦....先總結到這吧!
總結
以上是生活随笔為你收集整理的为什么nodejs是单进程的_Nodejs·进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java当前月份减一个月_在java编程
- 下一篇: poi获取段落位置_Apache POI