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

来源:互联网 发布:逆战老是网络波动异常 编辑:程序博客网 时间:2024/06/05 22:37

后端的技术选型还是得看具体应用背景。注意:技术选型不是选语言框架,而是设计处理模型。
处理模型有几个基本的纬度:接受请求阶段,执行请求阶段。事件驱动,线程池。代码风格:同步还是异步。内存垃圾回收等策略。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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
原创粉丝点击