第一篇:“大集中”应用系统的结构和技术特点4——多线程和单线程的统一

来源:互联网 发布:windows bat脚本 copy 编辑:程序博客网 时间:2024/05/19 02:43

多并发请求处理时应用服务器的基本职能之一。很显然,以之相适应的是应用服务器内部的多线程处理机制。大集中应用系统的一大特点就是业务和数据的集中管理,隐含地就有了另外一个具体的需求:应对并发性访问需求。应对并发性访问需求需要考虑的因素很多,比如设备资源、网络带宽、多任务操作系统(当前的服务器操作系统好像都没有问题)、数据库设计模式、多进程(线程)管理等。其中最为关键的就是多进程(线程)管理了,因为它是决定系统吞吐能力的基础要素。在JVM中,好像没有提到过“进程”的概念,要完成并发处理,“线程”是基本实现手段。JVM针对线程管理提供了一系列的控制和管理接口,包括线程的创建、激活、挂起、唤醒、通讯、资源共享等。通过这些接口,应用服务器完成了对并发访问的基础管理,包括访问容量定义、线程运行管理、资源分配等运行管理工作。应用服务器提供了基础的线程控制。但因为应用系统的复杂性要求,我们要基于应用服务器开发建立服务框架,并以之为基础进行应用程序开发。从某种角度,可以讲服务框架看做应用服务器的扩展,服务框架要完成很多扩展的控制逻辑,比如缓存管理、共享资源管理、集群化节点通讯等。在这些服务框架中,同样要考虑多线程的管理问题。 在底层支撑框架的线程管理基础上,应用逻辑单元的开发将是严格按照单线程的方式组织。换言之,在业务用例功能的开发过程中,一般都会严格限制出现对进程的操作,包括线程控制、资源共享管理等。 原因很简单,良好的线程管理,对JVM而言具有生死攸关的意义,不合理的线程调度操作很可能导致系统性能的明显下降,以至于系统拥塞、宕机等。线程操作管理对开发人员的技术能力具有很高的要求,不仅仅包括JVM暴露出来的线程的操控函数,也需要开发人员对应用服务器的并发管理机制、JVM的多线程调度机制等有比较深入的理解。因此,从技术架构上讲,将线程控制操作集中在底层框架中,并通过严格的规范对业务应用开发人员进行约束,在保证框架代码质量和性能的同时,避免因应用逻辑中出现不合理的线程操控管理而对整个系统产生不良的影响。另一方面,可以通过底层的技术封装和隔离,可以有效减少对业务应用开发人员的技术要求,降低普通开发人员的技术学习成本,从而降低整个应用系统的开发投入,降低系统的缺陷率,达到有效保证产品质量的目的。

原创粉丝点击