发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 大数据 扩展性 并发编程 事件驱动 分布式 SOA

非堵塞的几个Web框架性能测试

                   
2015-03-25 08:24
赞助商链接

有好事者将Tomcat7的Servlet-BIO与Servlet-NIO以及Node.js、Node.js-sync和Scala的Spray几个框架的性能测试,测试结果显示这几个框架的响应时间都差不多,这几个框架中有堵塞(Node.js-sync)和非堵塞(Node.js)两个方式,由此作者得出堵塞和非堵塞性能并没有多大区别。

测试结果见:bozho-benchmarks/nonblocking at master · Glamdring

点评:作者可能没有意识到非堵塞的真正意义,真正非堵塞是杜绝可能会产生堵塞的瓶颈,比如Socket IO是一个堵塞点,Socket IO在我们Web服务器中一般会存在两个地方,接受前端请求响应的Http服务器端,上面几个框架是这种Socket IO,还有一种是访问后端数据库的Socket IO。这两个容易堵塞点单独运行时可能没有什么问题,但是如果两个同时发生堵塞,容易陷入类似多线程的死锁状态,也就是说,一个线程已经通过Http的IO,等待DB的IO,而DB的IO已经被其他线程池连接被用光了,或者正在使用中,那么这个线程会停止等待,堵塞住了,因为它还hold住Http的IO线程,那么就会导致Http的IO堵塞,新的请求不再进来。

非堵塞实际是将每个单独线程能够顺利完成全部流程,消除中间可能发生的堵塞点。

nio      异步编程      NodeJS      性能测试     

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系管理员 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com