- 2
- 0
- 约2.56万字
- 约 45页
- 2017-01-15 发布于四川
- 举报
《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部分所花费的时间在你整个
您可能关注的文档
- 《Kei软件简介.doc
- 《Kingston金士顿SD卡真假辨别方法.docx
- 《KH5高渗透改性环氧防水与粘结双功能界面剂.docx
- 《KJ2000N安全监控系统磁盘阵列发生严重故障时应急解决方案.doc
- 《KFC肯德基企业管理制度.doc
- 《KESIONCMS内容管理系统白皮书新.doc
- 《Kjgovg高一数学必修二总结.doc
- 《Kmpayer应用总结.doc
- 《Kjawxd高一数学必修2知识总结.doc
- 《方桩静压施工方案.doc
- 腾讯安全沙龙:红队视角下的海外SRC猎场:战略、战术与突破.pdf
- 【icap】ETS的范围扩展:设计和政策挑战.docx
- bcg -美国最高法院关于关税的裁决对你的企业意味着什么 What Does the US Supreme Court Ruling on Tariffs Mean for Your Business.pdf
- 2026届甘肃兰州市高三下学期第一次模拟考试历史试卷(扫描版,含答案).docx
- bcg -零售银行如何让人工智能代理发挥作用 How Retail Banks Can Put AI Agents to Work.pdf
- 住宅项目规范解读(GB 55038-2025) -培训 - 房地产-2025.docx
- 盘扣式脚手架工程量自动计算表 -培训 -房地产-2025.pdf
- 广东省汕头市2024-2025学年高三下学期第一次模拟考试英语学试题(含答案).docx
- 品牌研究+_+2025+CAPSE中国航司品牌榜单.pdf
- 【银河专题】如何看待豆粕内外价差关系.pdf
最近下载
- 位错线∥b screw dislocation.ppt VIP
- DQ380变速箱培训教材.pptx VIP
- 基层党组织2026年组织生活会个人五个方面对照检查自我剖析4篇.docx VIP
- 2025年重庆中考数学备考全指南(考点+真题+计划)(知识点归纳,必考知识点、真题模拟试卷及解析).docx VIP
- 卫生院胸痛救治单元建设应知应会.docx VIP
- 自考 00260《刑事诉讼法学》可打印背诵版(表格 + 高频考点 + 答题模板).docx VIP
- 强酸性阳离子交换树脂催化酯化丙烯酸和甲醇合成丙烯酸甲酯的反应动力学.pdf VIP
- 2025 年大学新闻传播学(新闻学概论)试题及答案.doc VIP
- 《“十五五”规划建议》全文解读.ppt VIP
- Unit 1 People at work 教案 课件 外研版英语四年级下册.docx VIP
原创力文档

文档评论(0)