菜鸟好奇的问下,各位大佬乱入~~~
单线程是不是只能小打小闹?
1
makelove 2023-07-21 21:41:12 +08:00
你关心这个干嘛,一般人一辈子大概率不会拥有 node 单进程解决不了的网站,web 应用不是 cpu 密集,js 这类异步语言单线程足够满足 99.9%程序。
且人家 node 的 web 应用天生就支持多进程部署,程序都不用改。 |
2
someday3 2023-07-21 22:05:31 +08:00
一楼正解。
别动不动就多少并发的,互联网上大部分的网站根本不需要多少并发,就是一个资源转发,单进程几十个人的用户完全没问题。 |
3
humbass 2023-07-21 22:42:13 +08:00
同楼上,一般人也用不到 nestjs ,这种模仿 spring 的项目就是个伪需求。绝大多数项目只需要 express ,高级点 eggjs 就可以搞定。
|
4
dream4ever 2023-07-21 23:09:05 +08:00
新人不要太多关注这些宏大概念,先把业务摸透,把基础打扎实才是王道。
|
5
foolishcrab 2023-07-21 23:13:54 +08:00
1. 是的,小打小鬧
2. 是的,一般你也閙不大 3. 閙大了再花點小錢請幾個 JAVA crud 仔重寫 |
6
githmb 2023-07-21 23:51:16 +08:00
node.js 原生有多进程支持. 那种一个连接起一个线程的框架也没什么技术含量
|
7
IvanLi127 2023-07-21 23:52:45 +08:00 via Android
因为。。不需要考虑这个。。。跑多线程的方式那么多,框架又是支持异步和流式的,所以在这点上是无所谓的。。。
另外,他的竞争对手是 node 平台的其他框架。。。你跨到 java 和 go 上,没啥可比的 |
8
Tyaqing 2023-07-22 00:24:00 +08:00
nestjs + k8s 或者上 serverless,同样能抗住,但是谁有这么多客户.
我们业务每天差不多 1E 次调用,k8s16 个 pod 游刃有余 |
9
bybyte 2023-07-22 00:24:27 +08:00
我的理解是 现在的 web 应用几乎都是 IO 密集型,IO 密集型的程序使用多线程没有太大的优势
|
10
dcsuibian 2023-07-22 00:48:01 +08:00
IO 密集型有异步
|
11
ochatokori 2023-07-22 01:03:19 +08:00 via Android 1
nodejs 只是应用层面的单线程,io 本来就会在底层多线程并行。
再说现在 node 早就不是 0.x 版本了,应用层多线程多进程都原生支持好多年了 |
12
diagnostics 2023-07-22 01:33:43 +08:00
nodejs 线程模型挺厉害的,主要是好几个大佬在上面搞了高效利用线程的东西,反而 Java 这边思维固化了,虚拟线程的理念最先的实践就是 nodejs (绿色线程)
|
13
dayeye2006199 2023-07-22 08:33:38 +08:00 via Android
哪有这么多需要高并发的东西。
大部分生意,只需要把东西做出来。 性能什么的,等你需要考虑,你已经基本上不差钱来招人干这个了 |
14
tairan2006 2023-07-22 09:07:48 +08:00
跨语言竞争多少有点离谱了,nodejs 的优势也不在这
|
15
musi 2023-07-22 11:20:15 +08:00 via iPhone
跨语言竞争就算了,你还拿解释性语言和编译性语言竞争,你搁这降维打击呢
|
16
AyaseEri 2023-07-22 15:07:06 +08:00
到计算密集任务的时候,node 直接就挂 C++ addon 了。IO 密集那 node 的优势可太大了。
|
17
mmdsun 2023-07-22 21:29:29 +08:00
Redis 单线程为什么这么快? 和这个问题差不多。
|
18
dode 2023-07-23 10:27:42 +08:00
云原生,无服务计算呀
|
19
libook 2023-07-24 15:55:04 +08:00
对 nestjs 不了解,但对 Node 比较了解。
Node 的非阻塞 IO 只有计算部分是单线程,IO 部分是多线程的。 虽然 Node 支持多线程、多进程,但实际上微服务集群出现之后,单实例是不是多线程也没啥关系,堆集群节点数量就好了,负载均衡一分。只有真正在一个业务流程过于冗长需要多线程、多进程来优化的时候,才需要专门去做多线程、多进程设计。 特别是云原生之后,同一个微服务的集群节点都可能同时在不同服务器上,而且被动态调整。 Spring 的优势在于人才量大管饱,可能直到目前任何其他语言框架依然都没法竞争过 Spring 。 Go 实际上是被专门设计成一种,专门用于解决企业多人合作生产痛点的“产品”,牺牲灵活性来提升开发产能。我也不认为 nestjs 能竞争过 Go 。 |