各位大神早~ 小的有件事没想通,还望神们指点一二
node 因为单线程,因此也就有了非阻塞事件驱动的优势
然而又因为单线程,复杂的计算不能放到 node 里,也就有了下一级的环境专门来做计算,比如用 java 啊, python 啊什么的
拿 java 举例子吧,到了 java 这里不又是多线程了么, node 单线程省下来的内存占用在这边又回来了,那这时候 node 的存在价值体现在哪里?
(虚心请教贴 :P
1
tianzx 2016-12-06 12:46:00 +08:00 via Android
前后端分离啊,节省人力成本
|
3
xxxyyy 2016-12-06 13:08:55 +08:00 via Android
你选 node 是为了省内存吗?
|
4
misaka19000 2016-12-06 13:11:05 +08:00 via Android
@andy0620 都选 node 了,还要啥自行车啊
|
5
winglight2016 2016-12-06 13:57:46 +08:00
项目规模和行业不同,会导致架构选型不同,所以中小项目选择单一技术架构保证开发人员和技术的稳定性,大型项目就需要考虑多团队合作和长期维护成本的问题,这样就会采用前后端分离、微服务、多种技术架构等方案利用各自的优点。没有一种技术方案能解决所有问题——简单说,没有银弹。
|
6
kanezeng 2016-12-06 14:07:44 +08:00
在这里的话, Node 就更像一个统一的 api 的网关,这样前端只需要和 node 打交道,然后具体的业务由 node 去找后端的实现,后端可以根据业务特点选择最适合的实现方式。
|
8
Xinghx 2016-12-07 11:04:09 +08:00
node 是解决高 IO 并发的~ 计算肯定是不行的,借用楼上的话 还要啥自行车
|
9
yunshansimon 2016-12-10 21:05:15 +08:00
粗略的说, node 相当于 nginx+phpfpm+php+swoole 扩展的功能。效率要比 nginx 们高,因为少了一环进程间通信。还因为能更好的配合 nosql ,例如 mongodb ,不用转换,因为本身 mongodb 输出的就是 json 对象。 node 本身可以支持多进程, php+swoole 也可以支持多进程,但两种编程难度, swoole>>node ,因为 php 本身根本没有进程或 context 概念,一个对象的方法可能在不同进程中调用,经常把人搞晕(主要是我水平低)。 java 本身有多进程和多线程概念,但 java 需要 10 倍以上的代码来解决相同的问题。最后, node 本身的 stream 概念非常适合处理大流量数据,或对网络功能进行扩展和修改(只要修改流向,或者在下游增加流处理器就可以,根本不用改原来的代码)。这样的能力, php 完全没有, java 有,但需要从底层代码写起。
|