MINA是一套成熟的JAVA NIO 框架,在用到Socket通信的Java应用场景中经常会得到使用。其作者还有一套更加知名的框架Netty,其应用程度更加广泛。虽然不及Netty知名,Mina也是一套成熟的NIO框架,有一定的应用,比如Dubbo框架在底层通信上将Mina作为备选方案。引用MINA官网的表述。

Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API over various transports such as TCP/IP and UDP/IP via Java NIO.

可见,MINA有如下特征:

1. 高性能

2. 高可扩展性

3. 提供事件驱动的异步API

事实上,和Netty类似MINA是对JAVA NIO的封装,使得开发者能够从JAVA NIO通信机制的编写中解放出来(事实上,从MINA本身可以看出来要编写一套稳定并且高效的JAVA NIO通信机制是不容易的),专注于业务代码的编写。Mina本身对Spring有较好的支持,可以通过一定的配置实现客户端或者服务端程序。由于事实上利用MINA实现业务功能是,同时还是需要关注通信层的机制,涉及一些参数的设置,目前未见到Spring Boot下有比较优雅的MINA使用方式。

MINA的整体组成可以用下面这个图来表示,其中:

IO Service,主要实现实际的网络通信部分,可理解为对应 Java NIO的Socket连接管理部分。

IO Filter Chain, MINA利用责任链模式将消息发送前后一些通用的逻辑抽象成IO Filter,并且按照先后顺序进行排列构成Chain。典型的有Logging Filter, Executor Filter, Codec Filter等。

IO Session,即一个连接回话,可以类比成JAVA NIO 中的Channel

IO Handler,这里即是定义实际业务代码的地方,前面的其他组件MINA框架都已经实现或者有了非常友好的组件实现可以进行简单的集成。

MINA 框架总结 整体理解的更多相关文章

  1. mina框架之---服务端NioSocketAcceptor的学习

    接上一讲对mina的简单应用和对mina服务端和客户端中几个重要的技术知识点的理解后,今天着重对mina服务端的NioSocketAcceptor 进行学习. 说这个玩意之前,先整体上看一下在mina ...

  2. Android Mina框架的学习笔记

    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...

  3. mina框架tcpt通讯接收数据断包粘包处理

    用mina做基于tcp,udp有通讯有段时间了,一直对编码解码不是很熟悉,这次做项目的时候碰到了断包情况,贴一下解决过程, 我接受数据格式如下图所示: unit32为c++中数据类型,代表4个字节,由 ...

  4. 摘录:MINA 框架简介

    Apache Mina Server 是一个网络通信应用框架,也就是说,它主要是对基于TCP/IP.UDP/IP协议栈的通信框架(然,也可以提供JAVA 对象的序列化服务.虚拟机管道通信服务等),Mi ...

  5. Mina框架的学习笔记——Android客户端的实现

    Apache MINA(Multipurpose Infrastructure for Network Applications) 是 Apache 组织一个较新的项目,它为开发高性能和高可用性的网络 ...

  6. Socket通信封装MIna框架--含羞代放

    目录 核心类 各个击破 IoService IoFilter IoHandler 总结 # 加入战队 微信公众号 Mina异步IO使用的Java底层JNI框架,Mina提供服务端和客户端,将我们的业务 ...

  7. mina框架详解

     转:http://blog.csdn.net/w13770269691/article/details/8614584 mina框架详解 分类: web2013-02-26 17:13 12651人 ...

  8. GPS部标平台的架构设计(三) 基于struts+spring+hibernate+ibatis+quartz+mina框架开发GPS平台

    注意,此版本是2014年研发的基于Spring2.5和Struts2的版本,此版本的源码仍然销售,但已不再提供源码升级的服务,因为目前我们开发的主流新版本是2015-2016年近一年推出的基于spri ...

  9. 基于Java Mina框架的部标808服务器设计和开发

    在开发部标GPS平台中,部标808GPS服务器是系统的核心关键,决定了部标平台的稳定性和行那个.Linux服务器是首选,为了跨平台,开发语言选择Java自不待言. 我们为客户开发的部标服务器基于Min ...

随机推荐

  1. Java访问控制权限

    在Java中一共存在四种访问控制权限,即 private.default(默认).protected和public 1.private 访问权限 private属于私有访问权限,可以用在属性的定义.方 ...

  2. 从软件工程师的角度看MacBook Air的几个设计亮点

    我多年从事软件开发和运营工作,从未跟“设计”间断过.现在在设计一个全新saas产品:超级表格(www.domypp.com).最近买了台苹果最新款的笔记本电脑MacBook Air,从该产品功能设计和 ...

  3. Xshell连接不上虚拟机的问题和解决办法

    第一次用xshell,一直连不上linux,搞了好久,也查了很多办法,但是最后也终于解决了,在这里我分享一下自己的解决办法,再列举网上的办法,希望可以帮助其他人. 1,你的linux ip地址没有配置 ...

  4. 三大集合框架之map

    Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象. Map没有继承于Collection接口 从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象. Map是 ...

  5. 安装adobe,路径My Pictures或卷无效。请重新输入。

    问题:安装adobe reader时,路径My Pictures或卷无效.请重新输入.我的光驱是D盘.因为是在虚拟机下安装的xp系统. 解决办法: GHOST WINXP2 My Pictures一般 ...

  6. 利用Surfingkeys和tampermonkey效率操作网页

    tampermonkey可以实现网页载入后自动进行某些操作,适合有规律的操作,实现完全自动化. 而Surfingkeys可以实现用各种按键实现各种功能,功能全部用JavaScript写,自定义性更强.

  7. python入门10 循环语句

    两种循环: 1 for in 2 while #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 循环语句 ...

  8. chrome不能用百度网盘极速上传插件的解决办法

    进入chorme设置中,选择隐私设置中的内容设置,插件>自动运行,然后管理例外情况>添加“[*.]baidu.com”,后边当然选择允许,然后重启浏览器,OK了

  9. Android(java)学习笔记49:通过反射获取私有构造方法并且使用

    1. 反射获取私有构造方法并且使用: (1)获取字节码文件.class对象:          Class c = Class.forName("cn.itcast_01.Person&qu ...

  10. Hibernate 基于外键映射的一对一关联关系随手记

    //有外键的一端默认使用懒加载. //没有外键的一端不使用懒加载,而是直接将它引用的对象也一并查询出来. //没有外键列不仅有外键约束还有唯一约束,即没有外键列一端的对象不能被有外键列一端的两个对象同 ...