• MINA简单的介绍


    本篇对MINA进行介绍:

    上图说明的是MINA在我们的项目中所处的层次。相当于对底层的通信系统做了一个封装。由于MINA暴露给用户的接口足够友好,所以MINA使用起来相当方便!
     
    MINA架构图:
     
    一个框架最重要的应该是它的数据流动和线程结构,数据流动能够很好的帮助理解框架,线程结构是理解工作方式的必要前提!
     
    1.   MINA数据流
    在MINA连接程序中,每个用户在连接的时候会建立一个TCP连接, 也就是建立了一条通信管道,客户端(remote peer)在给服务器发送消息的时候所经历的流程如上所示:
    在服务端会经过一个IoFilterChain, 也就是java中的责任链模式, 也就是数据包会经过链路上的每个filter进行处理, 比如(编码,解码,打印数据包内容)。你可以自定义
    各种需要的filter。
     
    MINA暴露给用户的接口是IoHandler, 在IoHandler中MINA为我们提供了几个常用的事件接口, 比如连接建立, 收到消息, 捕获到异常等等, 这些就是我们可以插入代码
    到MINA框架的地方, 数据包在MINA在框架中经过各种filter后到了我们自定义的IoHandler中,控制权就转移到了我们的手中!
     
    一般MINA框架给我们提供插入点就是在filter链上插入filter和在IoHandler实现各种事件接口。
     
    2.   MINA线程结构
    MINA采用的javaNIO程序, 作为一个服务器框架, 那么MINA必须有一个监听的线程,监听的线程负责响应客户端的各种连接事件。
    在接收到各种连接事件后,MINA会分派一个processer线程来处理这个客户端连接上的各种读写事件,这里MINA会启动和CPU核数相关数量的线程,而且一个processer线程
    会处理多个客户端连接读写事件。processer线程在处理读写事件的时候就是按照上面的数据流来进行处理的、于是整个结构就清晰了。
     
     
    上面说明了Mina的使用方式,省去了JAVA NIO细节, 因为要使用的话基本就只需要做到这个地步就可以了。 如何感兴趣可以去阅读MINA的源码!
    如果只需要使用MINA的话,那么上面的数据流细节和线程细节已经能很好的阐释MINA框架了。
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    PHP中防止SQL注入的方法
    SQLmap超详细文档和实例演示
    Spring Cloud 个人心得 理论
    Spring注解说明
    git各角色权限描述
    jenkins调用tomcat重启命令 && tomcat重启脚本
    nginx1.5 升级到1.14
    发布项目
    spring boot 多线程
    Jmeter测试http请求
  • 原文地址:https://www.cnblogs.com/hpf311/p/5192007.html
Copyright © 2020-2023  润新知