设计与开发应用服务器相关技术.doc
《设计与开发应用服务器相关技术.doc》由会员分享,可在线阅读,更多相关《设计与开发应用服务器相关技术.doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、设计与开发应用效劳器二-相关技术效劳器的设计与开发涉及到诸多技术与问题,归纳一下大致可以分为以下几种: 效劳器启动与接收数据过程 多线程策略 NIO 长连接 同步与异步 配置化支持 责任链模式 集群与负载均衡 数据包设计 效劳端连接协议 客户端连接技术效劳器启动与数据请求过程 各种效劳器所提供的功能与实现机制都不尽一样,但在启动与数据请求这块都长得差不多,遵循固定的一些流程与模式,启动过程一般按一下流程:1以main方法的形式提供由外部脚本触发的入口2载入配置文件,解析并构建上下文3初始化各个组件与资源4注册与启动监控与管理组件5启动连接监听数据请求过程一般按一下流程:1侦听Socket2包装
2、Connection3解析并包装数据4请求处理5向client发送处理结果多线程策略 多线程的策略一般可以采取两种方式,一种是每一个线程负责监听、处理与返回结果所有事情,另外一种是把监听、接收、处理分开,各自都有独立的线程去处理。第一种策略比拟简单,适用于处理不复杂的场景,图示如下:第二种方式把一个较长的请求处理过程分割开,区分对待,这样能提高系统的吞吐量,比拟适用与较为复杂的请求处理场景,图示如下:apache perfork在此根底上还有个main进程对这些work子进程进展管理,会根据请求的繁忙程度来调整work进程的数目,这也是可以借鉴的。NIO NIO的特性非常适用于网络效劳器的接收
3、数据这块,因为不是每时每刻都有数据请求,因此没必要搞一堆Accept线程在那里监听等待,以Tomcat6的NIO接收数据为例:Amoeba也是采用NIO来接收数据流:长连接 长连接顾名思义就是客户端与效劳端保持连接,而不是每次请求都新建连接并在请求完后关闭连接,好处有以下几点: 减少新建与销毁线程所带来的代价 减少线程上下文切换带来的代价 适用与效劳端需要监控客户端状态的场景,不需要通过客户端定时轮询来完成 建立了效劳器主动向客户端推的通道性能上与短连接的差异可以见以前的博文 构建高性能web之路-web效劳器长连接 同步与异步 一般的情况下效劳器端处理客户端请求都是同步的,客户端请求提交后会
4、在一定的超时时间里等待效劳器的response,这比拟适用于短时间里能处理 完的请求,但如果一些请求,比方文件上传,在规定的超时时间里没法处理完,这样异步的处理就比拟适宜了,所谓异步就是客户端的请求提交后就可以完毕这次请 求,不用等待response返回,在效劳端处理完后主动把结果通知给客户端。Tomcat6推出的Comet技术即就是异步处理的典型,通过Comet 技术,客户端所需要的response信息不再需要主动的去索取,而是在效劳器端以event的形式推至客户端。更多Comet的信息可见Tomcat官方文档 配置化支持 效劳器的各种参数,比方线程池大小、连接协议等等,需要暴露出来可以配置
5、,因此需要有配置管理机制。一般说来配置文件多以xml或 properties形式提供。对于properties比拟简单,只是很难表达层次化构造,解析起来比拟简单,通过Properties类就能很方便地 进展解析。而xml表达的信息更友好、更清晰,解析xml的方法比拟多,一般用以下几种: SAX DOM JDOM、DOM4j、Digester等前面两种比拟原生态,SAX与DOM的区别就不再累述,JDOM、DOM4j与Digester都是基于前两种以上的开源框架,可以更加方便地调用。个人感觉如果xml不够复杂,不必使用太多的框架,原生态的东西就够用了。解析完配置文件后,一般可以用更加有语义化的ja
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 设计 开发 应用 服务器 相关 技术
限制150内