- 1、本文档共45页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《MINA2.0用户手册中文随笔翻译
第一章——开始
? ? 在这一章中,我们将给你什么是MINA、NIO的第一感觉,以及为什么我们在NIO上构建框架。我们还展示了如何运行一个基于MINA的非常简单的程序例子。
1、NIO综述
? ? NIO APIs在Java 1.4中被给出,如今它已经在在大量的程序中被使用了。NIO APIs允许非阻塞IO操作。
? ? 注意:首先,知道MINA是在NIO 1的基础上开发的是很重要的,如今在Java 7中一个新版本的NIO-2已经被设计出来,但是我们还没有从这个版本所带有的特性中获益。
? ? 注意:知道N在NIO中的意思是New也是重要的,但是我们将在很多地方使用非阻塞(Non-Blocking)这个术语。NIO-2需要被看为New New I/O……
? ? java.nio.*包包含以下关键结构
Buffers——数据容器
Chartsets——bytes和Unicode之间的翻译容器
Channels——代表I/O操作的连接实体
Selectors——提供可选择的多路复用非阻塞IO
Regexps——提供一些操作正则表达式的工具
? ? 我们将集中关注MINA框架的Channels、Selectors以及Buffers部分,其它部分我们将对用户进行隐藏。
? ? 本手册将集中关注在这些内部组件上构建我们所需要的系统。
NIO vs BIO
? ? 知道BIO和Clocking IO这两种APIs之间的不同是很重要的,在阻塞模型中依赖普通的sockets链接:当你读、写或者在socket上做任何操作的时候,被调用的操作将会阻塞调用者,知道操作完成。
? ? 在一些例子中,关键是能够调用操作,并期望被调用的操作在操作完成之后能够通知调用者:这使得调用者在平均的运行时间里可以做更多的事情。
? ? 这也就是NIO的优点,当你有很多的socket链接时,NIO能帮你更好的处理它们:你不需要为每一个链接创建指定的进程,你只需要使用少量的进程来做同样的事情。
? ? 如果你想获得有关于NIO的更多信息,网上有很多不错的文章,还有几本书讲述了有关NIO的问题。
2、为什么开发MINA
? ? 编写网络程序被看做是繁重的底层开发。它一个开发者不经常学习和知晓的区域,要么是因为很久之前在学校里学过但是现在已经忘了,或者是因为复杂的网络层总是被高层隐藏,总之你没有深入学习过它。
? ? 另外当涉及到异步IO的时候,一个额外的发杂层又参杂了进来:time。
? ? BIO(Blocking IO)和NIO(Non-Blocking IO)之间的最大的区别是,在BIO中,你发送一个请求,然后需要一直等待直到你获得答复。在服务器端,这意味着一个进程将会与一个对内连接相联系,所以你不得不处理复杂的多路链接。在NIO中,另一方面,你需要解决非阻塞系统的同步工作,这就意味当一些事情发生之后,你的程序将被唤醒。在NIO中,你不需要调用和等待结果,你发送完命令之后,之后当恢复准备好了你将获得通知。
框架的需求
? ? 考虑到这些不同,事实上许多的程序都期待在调用网络层的时候有一个阻塞模式,而最好的解决方法就是编写一个模拟阻塞的框架来隐藏这些不同。这就是为什么需要MINA。
? ? 但是MINA可以做更多。它为使用TCP、UDP和其他机制进行通信提供统一的接口。当你只考虑TCP和UDP的时候,一个是有连接的(TCP),而另外一个是无连接的(UDP)。MINA掩饰这些不同,使你能够专注于你的程序的两个重要部分:程序的编码以及协议的编码和解码。
? ? MINA不但可以处理TCP和UDP,它还通过VmpPipe或APR为串口通信(RSC232)提供了一个高层接口。
? ? 最后但不是最终的,MINA被特别的设计为能够在客户端和服务器端都能运行的网络框架。
? ? 编写一个关键是能够扩展的系统,同时在性能和内存使用方面能够符合服务器的要求:这就是MINA所擅长的,它使得构建你自己的服务器变得简单。
什么时候使用MINA?
? ? 这是一个有趣的问题!MINA在一些情况下并不是最好的选择。当你想要使用MINA的时候有几个元素需要考虑。让我们来看看:
当你没有特定的性能环境的时候它是易用的,这个时候MINA是一个很好的选择因为它让你更简单的构建一个服务器或客户端,而不用在BIO和NIO的上层重复编写处理代码和处理各种参数。你甚至能够用简单地10行代码完成你的服务器,而且可以避免更少的问题。
一定数量的用户连接BIO是比NIO快的。不同的是大约30%支持BIO。这对于拥有几千条用户连接的系统是正确的,但是在一定程度上,BIO已经停止扩展了:你不能用一个用户一个进程的方式处理百万级的用户连接!而NIO可以。另一方面你在MINA部分所花费的时间在你整个
您可能关注的文档
最近下载
- 中华民族共同体概论课件第八讲共奉中国与中华民族聚力发展.pptx VIP
- 一种碱性磷酸酶标记抗体或抗原的方法.pdf VIP
- 2024-2025部编人教版小学语文1一年级上册(全册)优秀课件.ppt
- 手术室PDCA——提高急诊手术器械物品准备的完善率.pptx VIP
- 宠物行业宠物智能喂食器研发方案.doc VIP
- 老年人徒手肌力评定健康促进课件.pptx VIP
- TPM管理培训课件.pptx VIP
- 中华民族共同体概论大讲堂课件第七讲华夷一体与中华民族空前繁盛(隋唐五代时期).pdf VIP
- 灰库系统钢结构加固施工方案.docx VIP
- 2025至2030中国中医馆行业市场发展分析及前景趋势与投资机会报告.docx
文档评论(0)