来了公司实习4个月了。也算是做过node后端开发的人了。。。。。。。。。。。
说下那个总结吧。。。。。。。
1.关于高并发:记得来公司二面的时候,leader就说node的搞并发和java不一样,先总结下这个问题吧。。。
【node是一个线程处理所有请求,java多个请求处理所有请求】
node支持高并发:主线程+异步io线程------高并发的主要原因
java支持高并发:多线程-----线程多,内存开销也大,内存大小固定,支持的线程个数也就固定,并发量小的多
node和java的最大区别就是node是单线程,而java是多线程
因此单线程的 node的优点是:不用维护数据同步,不存在锁的概念,不用关注线程间数据同步的问题,不存在死锁
的缺点是:即使cpu的核数在多,他也只能利用一个;一个错误会导致整个服务死掉,cpu如果做大量的计算就会死掉。。。
由于node是主线程,i/o工作线程(异步处理)模型,因此适合做i/o密集型工作,也就是中间层,绝对不适合cpu、密集型工作
2关于node集群架构,我们公司目前使用的架构。。。。
然后静态服务由nginx处理,node只进行数据的处理