首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 应用服务器 >

设计与开发应用服务器-常见形式

2013-12-04 
设计与开发应用服务器--常见模式Tomcat根据处理一个请求的不同阶段分为多个层次,所有层次通过pipeline-val

设计与开发应用服务器--常见模式

Tomcat根据处理一个请求的不同阶段分为多个层次,所有层次通过pipeline-valve的结构连接起来,每个层次通过Valve处理相应维度的事情。

2)Apache perfork

设计与开发应用服务器-常见形式

此架构模式中存在一个主进程和多个子进程。每个子进程都会为所进行的请求侦听一个套接字。当接受到请求之后,子进程就会接受它并且提供响应。父进程会监控所有的子进程以确保总是可以使用最少数量的进程来处理请求,并且确保等候请求到达的闲置进程不能过少。如果没有足够的空闲进程来处理潜在的请求高峰,那么父进程就会启动新的子进程。如果存在过多的进程,那么父进程会每次终止一个空闲进程,直到服务器回到最大空闲子进程数量之下。通过保持一定数量的空闲子进程来接受所引入的请求,服务器就可以避免在接受到请求时再去启动新进程的开销。 父进程和子进程之间通过记分板进行通信。对于每一个产生的子进程,它的状态信息都写入到记分板中,父进程通过读取记分板可以了解子进程的状态。当需要关闭子进程的时候它将通过终止管道发送终止信息给子进程,另外的一种通知方法就是通过信号。

3)Amoeba

设计与开发应用服务器-常见形式

Amoeba是夹在client和DB之间的Proxy,并且复用了mysql connector的协议,因此它必须维持好它与client端和DB端的连接,保持高速的数据流转。另外,它为了能做到sql路由就必须得解析mysql connector的协议,只有掌握去来的数据才能做好路由和结果合并等工作

4)Mysql

设计与开发应用服务器-常见形式

Mysql是一个将SQL处理和存储引擎相分离的两层结构,把上图简化来看如下图所示:

设计与开发应用服务器-常见形式

SQL Layer属于比较业务性的模块,也是根据SQL的种类和处理阶段的不同,分为多个层次和模块来逐层处理。Storage Engine Layer是一个数据存储的抽象层,它可以根据预定的标准和协议把不同结构和原理的存储引擎统一起来,并和SQL Layer无缝对接起来,如此设计能很好把其他在存储做得非常好的第三方给纳入进来,使得Mysql成为一个开放系统。

5)统一通信

设计与开发应用服务器-常见形式

融合通信的目的是要通过原生态的Socket协议把多种客户端和后端各服务连接起来,算是client端和服务提供方之间的Proxy。因此它为了提高它处理的吞吐量,把每次请求分成段,每段都通过独立的线程池来处理

6)Darkstar

设计与开发应用服务器-常见形式

?

Darkstar是个为了提供高可用的网络游戏框架,它把服务模块分为Tasking Service、Data Service、Channel与Session Service。其中Tasking Service是每次客户端请求的处理模块,Data Service用于持久化客户端的数据,Channel与Session Service用于保持客户端与服务端或客户端之间的通信和会话。网络游戏的性质决定了需要高并发、状态持久性和横向可扩展性,因此Tasking Service的特性是在任何机器和环境下都能独立运行,并且得到同样的结果,可以通过增加机器增强任务的处理能力,而Data Service和Channel Service保证了这一特性的可行性。

?

通过以上几个开源服务器的架构,大致可以总结出一个服务器需要以下模块:

    连接模块配置模块线程管理模块数据解析和转化模块任务处理模块监控和管理模块

    并且都需关注一下问题:

      高速连接和数据通信可配置化的管理多线程的管理策略分布式和横向扩展策略不同阶段处理的分层结构

      因此通过对一些架构的解析,对如何构架一个服务器应该有些宏观性的把控,接下来就需要对这个框框里需要的各项技术的掌握,这也是一个从宏观到微观的过程

热点排行