究竟是用 Go 还是 Node.js 去做中间件?

后端的技术选型还是得看具体应用背景。注意:技术选型不是选语言框架,而是设计处理模型。
处理模型有几个基本的纬度:接受请求阶段,执行请求阶段。事件驱动,线程池。代码风格:同步还是异步。内存垃圾回收等策略。profile工具是否完备等等等。

如果你说IO密集型,那等于没啥cpu压力。node可以入围。如果是cpu密集,那就乖乖用线程池模型。
采用node方案,主要问题是是否彻底掌握内存回收的细节,js的抽象建模的套路,还有各种配套工具,以及团队的熟悉程度。如果对js印象还停留在10年前,或者觉得js简单才用node,后面肯定被坑了。
实际上,node的v8,跟java的hotspot是同根同源,甚至都是同一个人主导。v8性能在非本地编译语言里,也是仅此于java这类中间语言。至于IO密集型,大家都一样,只是怎么跟操作系统bind。

golang也太了解了。node肯定可以做,但内存问题要小心。


作者:陈连杰
链接:https://www.zhihu.com/question/29808896/answer/148593997
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值