关闭→
当前位置:知科普>IT科技>mina - java

mina - java

知科普 人气:9.41K

<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>

java mina是什么,让我们一起了解一下?

MINA 是一个网络应用框架,有助于用户非常方便地开发高性能、高伸缩性的网络应用,通过Java NIO提供了一个抽象的、事件驱动的、异步的位于各种传输协议之上的API,MINA通常可被称之为NIO框架库。

mina的工作流程是怎样的?

当远程客户机首次访问采用Mina编写的程序时,IOAcceptor作为线程运行,负责接收来自客户的请求。当有客户请求连接时,创建一个IoSession,该IoSession与IoProcessor,SocketChannel与IoService联系起来。

IoProcessor作为另一个线程运行,定时检查客户是否有数据到来,并对客户请求进行处理,一次调用IoService中注册的各个Filter,最后调用IoHandler进行最终的逻辑处理,在将结果过滤后返回给客户端。

java mina

mina线程产生:

1、当 IoAcceptor/IoConnector实例创建的时候,同时一个关联在IoAcceptor/IoConnector上的IoProcessor线程池也被创建。

2、当IoAcceptor/IoConnector建立套接字(IoAcceptor 的bind()或者是IoConnector 。
的connect()方法被调用)时,从线程池中取出一个线程,监听套接字端口。

3、当 IoAcceptor/IoConnector监听到套接字上有连接请求时,建立IoSession 。
对象,从IoProcessor池中取出一个IoProcessor线程执行IO处理。

4、如若过滤器中配置了“threadPool”过滤器,则使用此线程池建立线程执行业务逻辑(IoHandler)处理,否则使用IoProcessor线程处理业务逻辑。

具体代码展示:

public class SocketCodecFactory implements ProtocolCodecFactory {    private final SocketDecode decoder;    private final SocketEncode encoder;    public SocketCodecFactory() {        decoder = new SocketDecode();        encoder = new SocketEncode();    }    @Override    public ProtocolDecoder getDecoder(IoSession session) throws Exception {        return decoder;    }    @Override    public ProtocolEncoder getEncoder(IoSession session) throws Exception {        return encoder;    }}

TAG标签:#mina #java #