nestjs 是怎么和 spring,go(gin)这些原生支持多线程框架竞争的? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
datadump
V2EX    Node.js

nestjs 是怎么和 spring,go(gin)这些原生支持多线程框架竞争的?

  •  
  •   datadump 2023-07-21 21:05:15 +08:00 4404 次点击
    这是一个创建于 864 天前的主题,其中的信息可能已经有所发展或是发生改变。

    菜鸟好奇的问下,各位大佬乱入~~~

    单线程是不是只能小打小闹?

    20 条回复    2023-07-28 08:16:29 +08:00
    makelove
        1
    makelove  
       2023-07-21 21:41:12 +08:00
    你关心这个干嘛,一般人一辈子大概率不会拥有 node 单进程解决不了的网站,web 应用不是 cpu 密集,js 这类异步语言单线程足够满足 99.9%程序。
    且人家 node 的 web 应用天生就支持多进程部署,程序都不用改。
    someday3
        2
    someday3  
       2023-07-21 22:05:31 +08:00
    一楼正解。

    别动不动就多少并发的,互联网上大部分的网站根本不需要多少并发,就是一个资源转发,单进程几十个人的用户完全没问题。
    humbass
        3
    humbass  
       2023-07-21 22:42:13 +08:00
    同楼上,一般人也用不到 nestjs ,这种模仿 spring 的项目就是个伪需求。绝大多数项目只需要 express ,高级点 eggjs 就可以搞定。
    dream4ever
        4
    dream4ever  
       2023-07-21 23:09:05 +08:00
    新人不要太多关注这些宏大概念,先把业务摸透,把基础打扎实才是王道。
    foolishcrab
        5
    foolishcrab  
       2023-07-21 23:13:54 +08:00
    1. 是的,小打小
    2. 是的,一般你也不大
    3. 大了再花小 JAVA crud 仔重
    githmb
        6
    githmb  
       2023-07-21 23:51:16 +08:00
    node.js 原生有多进程支持. 那种一个连接起一个线程的框架也没什么技术含量
    IvanLi127
        7
    IvanLi127  
       2023-07-21 23:52:45 +08:00 via Android
    因为。。不需要考虑这个。。。跑多线程的方式那么多,框架又是支持异步和流式的,所以在这点上是无所谓的。。。

    另外,他的竞争对手是 node 平台的其他框架。。。你跨到 java 和 go 上,没啥可比的
    Tyaqing
        8
    Tyaqing  
       2023-07-22 00:24:00 +08:00
    nestjs + k8s 或者上 serverless,同样能抗住,但是谁有这么多客户.
    我们业务每天差不多 1E 次调用,k8s16 个 pod 游刃有余
    bybyte
        9
    bybyte  
       2023-07-22 00:24:27 +08:00
    我的理解是 现在的 web 应用几乎都是 IO 密集型,IO 密集型的程序使用多线程没有太大的优势
    dcsuibian
        10
    dcsuibian  
       2023-07-22 00:48:01 +08:00
    IO 密集型有异步
    ochatokori
        11
    ochatokori  
       2023-07-22 01:03:19 +08:00 via Android   1
    nodejs 只是应用层面的单线程,io 本来就会在底层多线程并行。
    再说现在 node 早就不是 0.x 版本了,应用层多线程多进程都原生支持好多年了
    diagnostics
        12
    diagnostics  
       2023-07-22 01:33:43 +08:00
    nodejs 线程模型挺厉害的,主要是好几个大佬在上面搞了高效利用线程的东西,反而 Java 这边思维固化了,虚拟线程的理念最先的实践就是 nodejs (绿色线程)
    dayeye2006199
        13
    dayeye2006199  
       2023-07-22 08:33:38 +08:00 via Android
    哪有这么多需要高并发的东西。
    大部分生意,只需要把东西做出来。

    性能什么的,等你需要考虑,你已经基本上不差钱来招人干这个了
    tairan2006
        14
    tairan2006  
       2023-07-22 09:07:48 +08:00
    跨语言竞争多少有点离谱了,nodejs 的优势也不在这
    musi
        15
    musi  
       2023-07-22 11:20:15 +08:00 via iPhone
    跨语言竞争就算了,你还拿解释性语言和编译性语言竞争,你搁这降维打击呢
    AyaseEri
        16
    AyaseEri  
       2023-07-22 15:07:06 +08:00
    到计算密集任务的时候,node 直接就挂 C++ addon 了。IO 密集那 node 的优势可太大了。
    mmdsun
        17
    mmdsun  
       2023-07-22 21:29:29 +08:00
    Redis 单线程为什么这么快? 和这个问题差不多。
    dode
        18
    dode  
       2023-07-23 10:27:42 +08:00
    云原生,无服务计算呀
    libook
        19
    libook  
       2023-07-24 15:55:04 +08:00
    对 nestjs 不了解,但对 Node 比较了解。
    Node 的非阻塞 IO 只有计算部分是单线程,IO 部分是多线程的。
    虽然 Node 支持多线程、多进程,但实际上微服务集群出现之后,单实例是不是多线程也没啥关系,堆集群节点数量就好了,负载均衡一分。只有真正在一个业务流程过于冗长需要多线程、多进程来优化的时候,才需要专门去做多线程、多进程设计。
    特别是云原生之后,同一个微服务的集群节点都可能同时在不同服务器上,而且被动态调整。

    Spring 的优势在于人才量大管饱,可能直到目前任何其他语言框架依然都没法竞争过 Spring 。
    Go 实际上是被专门设计成一种,专门用于解决企业多人合作生产痛点的“产品”,牺牲灵活性来提升开发产能。我也不认为 nestjs 能竞争过 Go 。
    chuck1in
        20
    chuck1in  
       2023-07-28 08:16:29 +08:00
    @someday3 几十个人?恐怕十几万人的用户也没问题哦。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5292 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 08:42 PVG 16:42 LAX 00:42 JFK 03:42
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86