- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《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部分所花费的时间在你整个
您可能关注的文档
最近下载
- 地铁车站智能建筑(弱电)专项施工方案.docx
- 佳能50d使用说明书.pdf
- 食品配送流程(学校食材配送项目).pdf VIP
- GB/T 3480.5-2008_直齿轮和斜齿轮承载能力计算 第5部分:材料的强度和质量.pdf
- 个体工商户转换为企业法人决定书.docx
- 《管理会计师中级案例分析:成本管理的具体运用分析案例》6000字.docx
- 部编人教版初中八年级上册道德与法治《第六课责任与角色同在:做负责任的人》优质课获奖教案_1.pdf VIP
- 2024年疾控大学习我国传染病流行形势与防控策略答案.docx VIP
- 幼儿园课堂设计: 儿童哲学,让幼儿思考哲学问题并进行相关讨论的课堂活动.docx VIP
- 风力机和风力发电技术-控制系统概述.pptx
文档评论(0)