请教关于项目结构的问题(技术选型角度)

2016-12-06 12:37:01 +08:00
 andy0620

各位大神早~ 小的有件事没想通,还望神们指点一二

node 因为单线程,因此也就有了非阻塞事件驱动的优势

然而又因为单线程,复杂的计算不能放到 node 里,也就有了下一级的环境专门来做计算,比如用 java 啊, python 啊什么的

拿 java 举例子吧,到了 java 这里不又是多线程了么, node 单线程省下来的内存占用在这边又回来了,那这时候 node 的存在价值体现在哪里?

(虚心请教贴 :P

2460 次点击
所在节点    Node.js
9 条回复
tianzx
2016-12-06 12:46:00 +08:00
前后端分离啊,节省人力成本
andy0620
2016-12-06 13:07:28 +08:00
@tianzx 那为什么不去掉 node ,直接用 java ?
区别在哪里?
xxxyyy
2016-12-06 13:08:55 +08:00
你选 node 是为了省内存吗?
misaka19000
2016-12-06 13:11:05 +08:00
@andy0620 都选 node 了,还要啥自行车啊
winglight2016
2016-12-06 13:57:46 +08:00
项目规模和行业不同,会导致架构选型不同,所以中小项目选择单一技术架构保证开发人员和技术的稳定性,大型项目就需要考虑多团队合作和长期维护成本的问题,这样就会采用前后端分离、微服务、多种技术架构等方案利用各自的优点。没有一种技术方案能解决所有问题——简单说,没有银弹。
kanezeng
2016-12-06 14:07:44 +08:00
在这里的话, Node 就更像一个统一的 api 的网关,这样前端只需要和 node 打交道,然后具体的业务由 node 去找后端的实现,后端可以根据业务特点选择最适合的实现方式。
tianzx
2016-12-06 16:02:33 +08:00
@andy0620 可以啊,问题在于人力成本,不在于机器成本,前后端分离后可以并行开发
Xinghx
2016-12-07 11:04:09 +08:00
node 是解决高 IO 并发的~ 计算肯定是不行的,借用楼上的话 还要啥自行车
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 有,但需要从底层代码写起。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/325626

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX