现在已经很少再有纯粹封闭式的应用,对数据库的依赖,对存储的依赖以及对第三方系统的依赖都是我们在设计系统架构时要考虑的问题。本文试图通过分析 Tomcat 和 JBoss 中的异步服务处理来降低依赖所带来的风险。
作者先是从阿里软件服务集成平台所面临的实际问题出发,提出针对减少系统依赖的三个不同解决方案,比如改阻塞方式为非阻塞方式来处理请求;设置后端超时时间,主动断开链接,回收资源;修改容器配置,增加线程池大小以及等待队列长度等。然后选择第三种方案进行详细分析,具体对象是 Tomcat 和 JBoss。比如在分析过 Tomcat 对 Comet 的支持后,作者得出结论:
总体上来说 Tomcat 实现了部分对于 Comet 的支持,但是没有对异步服务流程作很好的支持,无法在开发中使用(简单顺畅的使用)。
而在文章后半部分对异步服务处理 Servlet 和普通 Servlet 所做的性能测试分析则表明:就纯粹从处理效率来说,采用事件处理方式在线程切换过程中存在着一定的损失,但是就我们使用异步请求处理的本意来看,对于在高并发下对后端依赖无法避免的性能损耗情况下,异步请求解决了连接耗尽的问题。
阅读全文: Web 请求异步处理降低应用依赖风险。
评论