mina的架构图:
说明了mina是介于用户业务和底层的socket之间的中间层
I/O Service 扮演实际的IO角色
I/O Filter Chain 在输入和输出的io流中进行过滤
I/O Handler 业务逻辑实现
根据以上的信息可以知道,要创建一个mina的应该一般分三步:
1、选择一个已经存在的I/O Service (一般叫XXAcceptor),当让也可以创建一个自定义的
2、选择或是自定义一些Filters,用户处理双向的io流
3、在Handler 接口的实现类中定义自己的业务方法
Mina客户端的架构:
客户端首先创建一个IOConnector 用来和服务端通信,顾名思义这就是建立的一个连接对象,然后在这个连接上创建一个session,
我们的客户端中的业务方法可以向session中写入数据,数据经过Filter Chain的过滤后会发送给服务端,从服务端发回的数据也会首先经过Filter Chain的过滤,然后交给IOHandler做进一步的处理。
mina服务端架构:

IOAcceptor 监听来自网络的连接请求,如果有一个新的请求(也就是Connection),mina会建立一个新的Connection,并在它之中建立一个session,所有来自这个ip和端口的请求都由这个session来处理,然后经过 特定的Filter Chain解析,在这些 Filter中我们可以定义一些转换,编码、解码等等的功能负责把底层传输的对象拼装为更高一层的对象方便后续的处理,最后传输的数据被交给IOHandler,我们的业务方法可以实现IOHandler接口来获得传输的数据,做最后的业务处理,发送数据亦然。