Apache Mina 学习笔记(1) - 入门

黄舟
发布: 2017-01-18 09:43:15
原创
1381人浏览过

在本章,我们会让你对什么是mina,什么是非阻塞io,为什么我们在非阻塞io上开发了这套框架有一个了解.我们也会给你展示一个非常简单的例子去让mina跑起来.

1.非阻塞io

非阻塞io的api在java 1.4版本出现,并且已经被用于数以万计的应用当中.nio api覆盖了非阻塞的各种操作.在java.nio.*的包中包含了下面一些重要的结构:

Buffers - Data Containers
Chartsets - Containers translators for bytes and Unicode
Channels - represents connections to entities capable of I/O operations
Selectors - provide selectable, multiplexed non-blocking IO
Regexps - provide provide some tools to manipulate regular expressions
登录后复制

在MINA框架中,我们对于Channels,_Selectors_ 和 Buffers最为感兴趣,我们希望对用户隐藏这部分.

2.NIO vs BIO

理解这两种API之间的区别是很重要的.BIO,即阻塞IO,依赖于socket采用阻塞模式,当你读写或者其他任何操作socket的时候,调用者会阻塞直至该操作完成.

但是在一些实际情况中,它期待于被调用者在完成请求时能够通知调用者,而调用者在同时可以完成其他的操作.这就是NIO.当你有很多个已连接的socket,NIO是一种更好的解决方法,你不需要为每个连接创建特定的线程,你可以仅仅只采用一些线程去做同样的工作.如果你想要获得更多的关于NIO的信息,网络上有很多这方面的资料和书籍.

3.Why MINA?

写一些网络应用程序,通常被看作是一种负担,是一种底层的开发。是一块开发者不经常接触的领域,或者曾经在学校学习过,但是已经忘记了,或者网络层的复杂性被更高层的抽象隐藏了,而你并不了解底层的东西。

当提到异步IO的时候,一个额外的复杂性出现了:时间.

在BIO和NIO两者间最大的不同就是,在BIO中,当你发送一个请求,你必须等待知道请求被回应.在服务端,意味着每当有一个连接到来时,要有一个线程被创建.所以你不得不处理多路连接的复杂性.而在NIO中,你得在一个非阻塞系统中解决同步问题,它意味着,当一些事件发生时,你不得不被卷入其中.在NIO中,你不需要等待你之前的调用,你发送一个请求,当请求完成时会通知你的.

4.The need of a framework

考虑到这些差异,以及这些问题的复杂性,最好的解决方法就是将这些复杂性隐藏起来,这就是MINA所做的.但是MINA可以做的更多,当通过TCP,UDP或者其他机制通讯的时候,它提供了一些常见的IO。如果我们只考虑TCP和UDP,MINA可以区分这两种协议,并且让你的注意力可以集中在你的应用程序的其他部分。

MINA不仅仅可以解决TCP和UDP问题,他对于串行通信,ARP也很有用。

最后,MINA是一种被定制的用来解决服务器客户端通信问题的网络框架,书写一个高度可扩展的,根据需求适应的服务器,并且让内存性能得以体现,这些都是MINA所擅长的,总是它希望让你开发服务器的时候,变得轻松。

5.First Steps

下面我们会展示使用MINA是多么的简单,并且运行一个非常简单的例子。首先,到这里去下载MINA的最新版,除非你有足够的理由让你不用最新版,否则希望你能用最新版开发。http://mina.apache.org/mina-project/downloads.html。下载完毕之后,解压所下载的文件。目录下面会包含一些子目录,其中disk包含MINA库的jar文件,docs包含了API文档,lib包含了MINA所需要的jar文件。

6.运行第一MINA程序

首先,如果你在终端,需要将一下包加入classpath,修改/etc/profile,并让他生效。如果你用集成环境,build your classpath就可以了。

以上就是Apache Mina 学习笔记(1) - 入门的内容,更多相关内容请关注PHP中文网(www.php.cn)!

Get笔记
Get笔记

Get笔记,一款AI驱动的知识管理产品

Get笔记 125
查看详情 Get笔记
相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号