论文部分内容阅读
随着网络技术的不断快速发展,互联网用户的数量也在不断增加,越来越多的互联网用户选择通过网络获取新闻资讯、进行社交活动以及消费购物,随之网络应用的规模日益扩大。在这样的趋势下,出现了许多实时性强、并发量高的网络应用场景,同时需要网络应用能够迅速对所有请求做出及时响应,这对网络应用服务器的并发处理能力提出了很高的要求。Java语言由于其对网络编程完善的支持以及良好的可移植性,成为在网络应用开发中使用非常广泛的开发语言。然而,随着网络应用对性能的要求不断提高,采用Java传统网络应用技术和开发模型构建的网络应用已经难以支持不断增加的访问量,因此,研究Java高性能网络应用技术的技术原理及其在实际业务中的应用模式是很有必要的。论文在该研究背景下,首先分析了Java传统网络应用技术的技术组成,包括基于流的BIO技术以及多线程技术,随后研究了基于以上技术的Java传统网络应用开发模型。通过以上研究分析,总结得出,Java传统网络应用开发模型可以在一定程度上解决网络应用请求的并发处理和及时响应问题,并且拥有逻辑简单、开发难度较低等优势,但随着用户数量的急剧增加,该模型将会迅速消耗系统资源,最终导致大量用户请求被拒绝、服务系统运行缓慢甚至瘫痪,这也暴露了该模型在系统资源有效利用率方面严重不足的主要问题,而问题的主要表现方面就在于Java传统I/O系统性能低下。针对Java传统网络应用技术及开发模型存在的性能瓶颈,Java从JDK1.4开始加入了新的I/O系统:NIO,同时为解决多线程带来的系统开销过大问题,JDK1.5提供了对线程池技术的支持。本文研究了Java NIO技术和线程池技术以及基于它们构建的Reactor开发模型,重点分析了NIO技术的底层实现原理和Reactor开发模型的设计思想。NIO技术将C/S架构中传统的“一对一”的网络服务模型改进为“一对多”,即一个服务器I/O线程同时管理多个客户端连接,这大大减少了服务器线程数量,同时由于线程池技术的应用,也降低了服务器线程的创建频率,从而在很大程度上降低了服务器系统为I/O线程之间进行切换的开销,提升了服务器系统资源有效利用率,从根本上优化了网络应用性能。为探究Java高性能网络应用技术在实际业务中的使用方法及应用模式,本文实现了KK通讯系统,该系统作为陕西省神木县教育资源公共服务平台的客户端子系统,需要为用户提供多个终端平台上的即时通讯、远程教学、在线作业等功能。KK通讯服务器在通信底层采用了基于NIO技术的MINA框架进行开发,搭配使用线程池技术,以Reactor模型为参考,设计并实现了一个具有较高并发处理能力的网络应用系统。同时,通过对KK通讯系统的性能检测,也验证了Java高性能网络应用技术对网络服务系统能够有效提升性能的理论预期。