因为最近搞了些nodejs及其周边一的东西。想了解理这企业用它做什么呢? 对于web项目这样的多线程东西,nodejs 又是如果完成的。就目前我发现只要程序出错,项目就完蛋。这一定是不行的啊,我特地用的一进程监视工作进程,一但工作进程完蛋就重启它,可以最终还是要挂。 nodejs 让我对它的作用的认知越来越迷茫了…………
node我们现在在做app的api,你的问题我觉得由以下的问题解决。首先是程序挂掉的问题,为什么程序会挂掉,如果是因为node的话,那说明node的代码写的有问题,如果是其他的原因,那么用别的语言也会有类似的问题,只不过不如node这么明显。然后是怎么做这个监控的问题,我们的做法是这样的,服务器是多核的,我们会按照核数来fork node的进程,然后用PM2来做进程管理,保证进程的重启,我觉得进程宕掉的问题和代码的关系更大,和node的关系不大。
楼主可以看看 node 的 cluster 模块,它能解决你面临的问题。另外推荐你看一本书《深入浅出 NodeJS》。
程序出错…不应该是你代码没写好的原因吗…
cluster 了解些,深入浅出 NodeJS看了几遍很初级的一本书,讲的很全但对我实际用应中没多大作用啊。 我现在就是用的cluster fork了一个工作进程,然后用的主进程监控的。
我现在就是用的cluster fork了一个工作进程,然后用的主进程监控的。不瞒大家,我这也是怀疑程序bug问题。bug不可能没有,项目遇到就挂,感觉好不爽啊,我写java项目bug一堆也没把tomcat搞崩了,最多就是heap overflow。可不可以让nodejs服务与应用分离呢
建议楼主多看看node用在production环境中的一些措施。。。
幻想写出不有bug的程序是不现实的
我在写的项目也是app的api服务,稳定速度快。
@luyanfeng node确实有这个缺点,不过你用 pm2 来跑应用保证服务持续可用,然后看看错误日志调一调就好了嘛。
cluster 看不懂。。直接用的 pm2
高并发,低负载,弱逻辑,适合dataAPI,不适合开发web前端应用
@AdoHe 的确
@duyongguang 也许吧,我现在在想nodejs能不能于web服务分离开了,重现个web服务,如tomcat 。有了这我想很多问题就不再是问题了
@xiaojue 哦?不吝赐教哦
@duyongguang 顶一个,到现在都觉得Node做Web有点重,和Node本身的特点不符合,我这里一般都是用来做数据的API,和楼主你类似啊!
@duyongguang 我也觉得不太适合web前端开发,而且好用的web框架太少,现在用得很多的express也是挺弱的,所以我自己在做一个自己比较喜欢的mvc框架,容我在这里给自己的mvc框架打个广告 :) https://www.npmjs.org/package/cat-mvc
@duyongguang Node挺好的,只做view和controller层。项目的整体进度会非常的快。
@luyanfeng 没什么赐教的,直接写就好了,然后跑性能测试用例,和之前java写的api对比速度和并发么,完胜。没啥好解释的。
学到一个新东西:PM2,还好不是PM2.5