MINA开发-1

MINA简介

Apache MINA是一个网络应用程序框架,可帮助用户轻松开发高性能和高可扩展性的网络应用程序。 它通过Java NIO在各种传输(如TCP / IP和UDP / IP)上提供抽象·事件驱动的异步API。
Apache MINA经常被称为:
1.NIO框架或者类库
2.客户端和服务器端的框架或者类库
3.一个网络和Scocket通信类库

MINA的特征

MINA是一个简单但功能齐全的网络应用程序框架,提供:
1.对于各种不同的传输类型提供了同一的实现API:

  • TCP/IP 和 UDP/IP 通过java的NIO实现
  • 串口通讯(RS232) 通过RXTX
  • 虚拟机内的管道通信
  • 可扩展实现自定义的传输协议

2.Filter接口作为一个可扩展的点,类似于Servlet的过滤器
3.低级和高级的API:

  • 低级:使用ByteBuffers
  • 高级:使用自定义的消息对象和编解码器

4.高度自定义的线程模式

  • 单线程
  • 一个线程池
  • 多个线程池(即SEDA)

5.SSL·TLS·StartTLS支持使用java5的SSL引擎(SSLEngine)
6.过载屏蔽和流量节流
7.使用模拟对象进行单元测试
8.JMX可管理性
9.通过StreamIoHandler支持基于流的I/O操作
10.与众所周知的容器式框架集成,比如PicoContainer和Spring
11.来自Netty的平滑迁移,这是Apache MINA的前身

MINA的使用场景

  • 当你没有特殊的性能要求时,MINA可能是很好的选择,因为它很容易实现服务器端和客户端的开发,代码简洁。
  • 百万级的用户连接,相对稳定;
  • MINA已经被广泛使用,而且Apache的很多项目也是基于MINA的;
  • MINA对现有的很多协议都已经实现支持:HTTP,XML,TCP,LDSP,DHCP,NTP,DNS,XMPP,SSH,FTP...,所以MINA不仅可以当做NIO的框架,而且还可以看做很多网络协议的实现。

MINA应用架构

mina结构图.png

在这里,我们可以看到,MINA是您的应用程序(无论是客户端还是服务器)和底层网络层之间的粘合,可以基于TCP,UDP,VM内通信或甚至RS-232C串行协议,提供对应的API操作。
您只需在MINA之上设计您的应用程序,而无需处理所有复杂的网络层。
让我们更深入了解细节。 以下图片显示了MINA内部的更多内容,以及每个MINA组件的作用:


mina_app_arch.png

从广义来说,基于MINA的应用程序分为3层:

  • I/O Service - 执行实际的I/O操作
  • I/O Filter Chain - 将字节过滤/转换为所需的数据结构,反之亦然
  • I/O Handler - 这里是实际的业务逻辑处理

所以,为了创建基于MINA的应用程序,你不得不做到以下:
 1.创建一个I/O service - 选择已经可用的Services(*Acceptor)或者创建你自己的
 2.创建一个Filter Chain(过滤器链)- 选择已经存在的Filters或者创建一个自定义的Filter(过滤器)用于转换request(请求数据)/respone(回复数据)
 3.创建一个I/O Handler - 此处编写业务逻辑,处理不同的消息信息

至此就完成了整个流程!

你也可以看看具体的客户端和服务端开发过程:
  - 服务端开发
  - Android客户端开发

当然,MINA提供的不仅如此,而且你可以关注其他方面,比如消息编码/解码,如何扩大网络配置等等...

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,131评论 19 139
  • MINA服务端的应用应用体系结构 基本上,服务器监听端口传入请求,处理它们并发送回复。它还为每个客户端创建和处理会...
    lengyan_zhao阅读 1,222评论 0 5
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,053评论 25 709
  • MINA客户端的应用应用体系结构 在上一篇文章中我们介绍了MINA服务器端的开发流程,这一章我给大家介绍MINA的...
    lengyan_zhao阅读 1,287评论 2 4
  • 活死人盘旋的黑乌鸦,叫声凄厉 父亲,祖父,还有许多邻居 他们横着,竖着,或者 埋入黄土里。 这么多年,我一直在寻找...
    红精灵阅读 391评论 4 9