虽然现在对大多数程序员来讲,基本不会再有使用Java开发一个服务器这样的任务,但是,这方面的技术研究一下,对自己的技术提高还是非常有帮助的。说不定啥时候能派上用场。
使用Java(J2SE)来设计服务器产品(不使用开源或其他已有产品)的架构,随着Java的不断发展,这几年也发生了很大变化。在JDK1.4之前,使用Java构建服务器应用本身就很少,所以这里也就不提了,我们从JDK1.4开始说。
第一阶段:
要点是:一个连接一个线程
|
阶段2:
服务器端采用了线程池
|
阶段1和阶段2虽然简单,但是很实用,在很多场景下仍然是第一选择。而且编程模型业内非常简单。
阶段3:采用非阻塞IO,多路复用技术,又有两种不同的方式
|
|
这种方式很重要的一点就是在IO事件发生时得到通知,由程序进行处理。
NIO给编程带来了很大的复杂度,使用NIO开发非常不容易,也很容易犯错误,所以,采用别人的框架是一个简单而自然的选择,采用grizzly和mina都很不错,对通用的场景都能满足要求。这里提醒一下,不管mina和grizzly,都有一些你不想用的特性,干扰你想用的功能,需要小心对待,最好自己也能处理mina和grizzly的bug,改进这些框架的功能。
再有,给予NIO来开发SSL也很复杂。
第四阶段:使用AIO技术
|
AIO最大的特性就是事前先设置好事件的回调函数,事件发生时自动调用回调。而且,得到的通知是“IO操作完成”,而不是NIO的“IO操作即将开始”。
使用AIO,在上层开发SSL也也很麻烦。
相关推荐
j2se架构图解,对初学者很有帮助,值得认真揣摩
j2se程序在MyEclipse下使用j2se程序在MyEclipse下使用j2se程序在MyEclipse下使用j2se程序在MyEclipse下使用j2se程序在MyEclipse下使用
J2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zipJ2SE核心技术基础(上).zip
J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API
经常需要用到的jboss的源码,但是想用时却总是找不到,这回放上来给大家共享,免得用时到处找
J2SE基础知识大全 J2SE基础知识大全 J2SE基础知识大全
对初学者有极大的帮助!在j2se的基础上更上一补!
J2SE基础源代码
J2SE课件J2SE课件J2SE课件J2SE课件J2SE课件J2SE课件
j2se1.5中文api
Java初学者的首选教材,附带学习中写过的例子代码相信会为你的学习带来很大的帮助。
j2se doc 中文版 j2se doc 中文版 j2se doc 中文版 j2se doc 中文版
很好的j2se的API
J2SE桌面应用开发 J2SE桌面应用开发J2SE桌面应用开发 J2SE桌面应用开发 J2SE桌面应用开发
很好的帮助文档,本人正在使用j2se1.6中文版
J2SE 教程
j2se api 中文版 j2se api 中文版 j2se api 中文版
01_J2SE初级技术面试题目及答案
j2se是学好java的基础,其中必须掌握api文档的一些包
j2se打包成EXE工具 谢谢使用 工具很小巧 使用见说明文档