博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web 框架 = LinkedIn 工程师的观点
阅读量:6891 次
发布时间:2019-06-27

本文共 765 字,大约阅读时间需要 2 分钟。

hot3.png

youtube上有一个LinkedIn 工程师介绍Play Framework的视频(),他对比Java,ROR,NodeJS以及Play Framework,说出了实质的问题,Java 采用的是线程池的结构,基本上线程是同步的,也就是说,只要结果没有返回,下一条语句就无法执行,这带来一个问题,大型的Web是基于SOA的结构,采用了很多Service,这些Service一般通过RPC来通信,如果其中一个阻塞了,那么,这样的延迟就会散步到其他的Service上面,导致Latency扩散到整个系统,结果所有受影响的部分都开始变慢。更悲剧的是Java的线程很难管理,通常有一个叫做Thread Hell的噩梦。

简单的例子,诸如:

A = CallServiceA

B = CallServiceB

如果A阻塞了,B是无法执行的。

诸如Spring等框架都存在类似的问题。

所以必须要用NIO,非阻塞的IO,非阻塞的IO里面,最显著的就是NodeJS,NodeJS的问题是,NodeJS很棒,但是NodeJS的大量的库都非常的不成熟,还有兼容的问题,所以NodeJS很难有成熟的Web 框架。

ROR的问题是,ROR很慢,而且实际上ROR是不支持线程的,不过现在可能有了,但是ROR的优点是,ROR写起来很快,有很多模块可以使用,社区很活跃,可能是写Web最快的语言。

Play 相对来说平衡最好的框架,但是相对于初学者而言,Scala的语法写的SBT看起来很糟糕,很难阅读和理解,而且基本上在搜索引擎上查不到解释。

个人觉得说的有道理,所以简单介绍一下,有兴趣应该翻过去看看原始的视频,讲的很好,特别是后半部分对比各种框架的时候。

转载于:https://my.oschina.net/hellomaya/blog/539889

你可能感兴趣的文章
Event loop (JavaScript中的执行机制)
查看>>
DPR
查看>>
Item 11 Override clone judiciously
查看>>
程序员过关斩将--请不要随便修改基类
查看>>
Golang 并发,有缓存通道,通道同步案例演示
查看>>
一件事件
查看>>
设计模式学习专栏五--------命令模式
查看>>
webpack 持久化缓存
查看>>
WebRTC 入门教程(二)|WebRTC信令控制与STUN/TURN服务器搭建
查看>>
前端成长DAY.1 Html+CSS
查看>>
学习笔记--dojo define/declare使用和esri.dijit.Bookmarks的简单改写
查看>>
mysql rownum in hibernate
查看>>
Redux源码完全解读
查看>>
软件工程
查看>>
小猿圈web前端学习之制作轮播图的三种方式
查看>>
Hadoop 基础之搭建环境
查看>>
github 入门教程之 github 访问速度太慢怎么办
查看>>
WebRTC学习总结
查看>>
Android手势 ---GestureDetector
查看>>
加入社群可视化功能预览 Data Studio新增新功能
查看>>