java mina

作者:原创时间:2022-04-02
文档

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

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

mina的工作流程是怎样的?

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

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

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;
    }
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java mkdir java mmap java mockito java modelandview java module java monad java mono java mqtt java multiset java mvvm java mybatisplus java namespace java newinstance java nextint java nextline java nexus java nfs java geotools java getbytes java hashcode java mian java method java merge java memcpy java matrix java matlab java math.ceil java mapping java malloc java main java logstash java logging java localtime java locale java list.contains java list.add java linq java linklist java leveldb java lamada