V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wjx0912
V2EX  ›  Node.js

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

  •  
  •   wjx0912 · 280 天前 · 2944 次点击
    这是一个创建于 280 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    Spring 的优势在于人才量大管饱,可能直到目前任何其他语言框架依然都没法竞争过 Spring 。
    Go 实际上是被专门设计成一种,专门用于解决企业多人合作生产痛点的“产品”,牺牲灵活性来提升开发产能。我也不认为 nestjs 能竞争过 Go 。
    chuck1in
        20
    chuck1in  
       274 天前
    @someday3 几十个人?恐怕十几万人的用户也没问题哦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2950 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:19 · PVG 17:19 · LAX 02:19 · JFK 05:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.