• Mina框架


    MINA IO处理框架

    Maven依赖

    <dependency>

    <groupId>org.apache.mina</groupId>

    <artifactId>mina-core</artifactId>

     <version>2.0.7</version>

    </dependency>

    <dependency>

    <groupId>org.apache.mina</groupId> <artifactId>mina-integration-spring</artifactId>

    <version>1.1.7</version>

    </dependency>

    Mina总体结构 三层

    IOService

    IOFilterChain

    IOHandler

    IOService负责处理IO,执行IO操作 包含Connector(客户端)/Accepter(服务端) processor

    IOFilterChain负责对数据包解析封装过滤等非逻辑操作 包含IOFilter

    IOHandler负责处理业务逻辑

    IOSession 一个IOSession对应一个底层的IO连接。IOSession贯穿整个流程

    整体流程:

    客户端创建Connector,客户端创建Session存储数据,然后通过FilterChain过滤,交给Processor处理后,通过Socket发送给服务端连接

    服务端通过Acceptor监听,接收连接,为每一个连接创建一个Session。将Session交给Processor处理后通过FilterChain过滤,最后交给Handler逻辑处理

     

     

    Acceptor是服务端负责监听工作。调用NIO的select connect事件,获取连接后,包装成IOsession交给Processor处理

     

    Processor负责主要的IO读写,每个Processor对应一个selector,对IOsession的集合进行select,对select结果进行遍历 ,逐一处理。

     

    线程池加入到FilterChain,提高系统吞吐量

     

     

    请求处理顺序问题:

    如果加入线程池,可能出现请求处理顺序没有按照希望的顺序执行,怎么办?

     

    使用MINA默认的OrderedThreadPoolExecutor作为内置线程池,帮助实现顺序处理

    如果没有顺序要求,使用ExecutorFilter让同一个session的多个请求能并行处理,提高系统吞吐量

  • 相关阅读:
    工作单元(UnitOfWork) 模式 (2) .NET Core
    工作单元(UnitOfWork) 模式 (1)
    WebAPI规范设计——违RESTful
    ASP.NET MVC / WebAPI 路由机制详解
    C#封装HttpClient工具类库(.NET4.5以上)
    centos7多网卡配置bond0 (mode6无需交换机做配置)
    linux windows 格式化一块大于2 TiB硬盘
    war包安装jenkins
    redis(一主两从三哨兵模式搭建)记录
    nginx + keepalived 主从模式
  • 原文地址:https://www.cnblogs.com/ttaall/p/11991305.html
Copyright © 2020-2023  润新知