1)Mina的核心类主要功能:(以最核心的类命名类组)
IOBuffer类组 | 提供缓冲区 |
IOSession类组 | 提供连接状态 |
IOFilterChain类组 | 事件和请求的拦截和过滤 |
IOHandler类组 | 处理业务逻辑 |
IOFuture类组 | 用于实现IO异步 |
AbstractPollingIO 类组 | IO轮询,读写 |
IOAcceptor类组 | 服务器端的连接接收 |
IOConnetor类组 | 客户端的连接 |
2)mina框架结构
可以看到事件由IOProcessor(有关线程)通过过滤器链传递给负责业务处理的IOHandler,而操作由IOHandler发起,通过过滤器链将请求传递给IOProcess。
3)mina的工作流程总结:
(1) 当 IoService实例创建的时候,同时一个关联在IoService上的IoProcessor池、线程池也被创建;
(2) 当 IoService建立套接字(IoAcceptor的bind()或者是IoConnector的connect()方法被调用)时,IoService从线程池中取出一个线程,监听套接字端口;
(3) 当 IoService监听到套接字上有连接请求时,建立IoSession对象,从IoProcessor池中取出一个IoProcessor实例执行这个会话通道上的过滤器、IoHandler;
(4) 当这条IoSession通道进入空闲状态或者关闭时,IoProcessor被回收。