1、为何使用Mina?

    java提供的BIO、NIO使用的复杂性等原因,导致Mina框架的诞生;

2、什么时候使用Mina?

    易于使用

    高并发的用户量

    被证明的系统:

      Mina已被全球数以万计的应用使用;

    现有协议的支持:

      HTTP、TCP、UDP。。。

3、Mina的特性

    

4、Mina应用架构

    

5、Mina架构实现细节

    

      基于Mina的应用分为3个层次:

          1.1  I/O Service(I/O服务)      ----具体的I/O操作

          1.2  I/O Filter Chain(I/O 过滤器链)    -----将字节过滤/转换为想要的数据结构,反之亦然

          1.3  I/O Handler(I/O 处理器)      -----实现实际的业务逻辑

6、创建基于Mina的应用的步骤

      1.1  创建一个I/O Service    ---从已存在的service中挑选一个或创建自己的

      1.2  创建一个Filter Chain     ---从现有Filter中挑选或创建一个自定义Filter

      1.3  创建一个I/O Handler    ---处理不同消息时编写具体业务逻辑      

7、Mina---服务端架构

      1.1  服务器端监听一个端口以获得连入请求,将其进行处理后然后发送回复;

          服务器端还会为每个客户端创建并维护一个Session;

          

              I/O Acceptor :监听网络以获取连入的连接或包

              对于每一个新的连接,一个新的session会被创建,之后所有来自该IP地址/端口组合的请求会在同一个session中处理

              在一个session中接收到的所有包,将穿越上图中所示的Filter Chain;

                  只要一个客户端连接到了Mina服务器端,需要创建一个新的session存放持久化数据;

                  Filter Chain用于修正包的内容(转化为对象、添加、删除信息等);

                  对于从原始字节到高层对象的相互转换,PacketEncoder/Decoder相当有用;

              包或转化后的对象最终交由IOHandler;

                  IOHandler用于实现具体业务需求;

8、Mina---客户端架构

       1.1   客户端需要连接一个服务器端,发送消息并处理响应;

           

          客户端首先创建一个IOConnector,开启一个服务器的绑定;

          在连接创建时,一个Session会被创建并关联到该连接;

          应用或客户端写入Session,导致数据在穿越Filter Chain后被发送到服务器端;

          所有接收自服务器端的响应穿越Filter Chain后由IOHandler接收并处理;    

Mina---系统学习的更多相关文章

  1. Dubbo -- 系统学习 笔记 -- 配置参考手册

    Dubbo -- 系统学习 笔记 -- 目录 配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> ...

  2. Dubbo -- 系统学习 笔记 -- 依赖

    Dubbo -- 系统学习 笔记 -- 目录 依赖 必需依赖 缺省依赖 可选依赖 依赖 必需依赖 JDK1.5+ 理论上Dubbo可以只依赖JDK,不依赖于任何三方库运行,只需配置使用JDK相关实现策 ...

  3. 零基础如何系统学习Java Web

    零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...

  4. Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇

    前言 前一篇 Unity3D 装备系统学习Inventory Pro 2.1.2 总结 基本泛泛的对于Inventory Pro 这个插件进行了讲解,主要是想提炼下通用装备系统结构和类体系.前两天又读 ...

  5. MES系统学习

    MES系统是当今制造型企业信息化的热点,而统一建模语言UML是面向对象建模的标准语言,在软件工程发挥着重要作用.MES系统如何进行UML建模呢,今天和大家重点讨论一下MES系统的UML建模方法,请看本 ...

  6. 001 今天开始系统学习C#

    2016-01-16 之前只是大概了解过c#语言,感觉掌握不牢靠.现在开始系统学习C#.现以该博客作为学习笔记,方便后续查看.C# 目标:系统掌握c#知识 时间:30天 范围:C#基础,Winform ...

  7. Linux系统学习笔记:文件I/O

    Linux支持C语言中的标准I/O函数,同时它还提供了一套SUS标准的I/O库函数.和标准I/O不同,UNIX的I/O函数是不带缓冲的,即每个读写都调用内核中的一个系统调用.本篇总结UNIX的I/O并 ...

  8. 从mina中学习超时程序编写

    从mina中学习超时程序编写 在很多情况下,程序需要使用计时器定,在指定的时间内检查连接过期.例如,要实现一个mqtt服务,为了保证QOS,在服务端发送消息后,需要等待客户端的ack,确保客户端接收到 ...

  9. Hibernate的系统 学习

    Hibernate的系统 学习 一.Hibernate的介绍 1.什么是Hibernate? 首先,hibernate是数据持久层的一个轻量级框架.数据持久层的框架有很多比如:iBATIS,myBat ...

  10. css系统学习网站

    最近系统学习一下css样式,找到一个不错的网站.http://css.doyoe.com/

随机推荐

  1. 2019年React学习路线图

    作者|javinpaul 译者|无明 之前我们已经介绍了 2019 年 Vue 学习路线图,而 React 作为当前应用最广泛的前端框架,在 Facebook 的支持下,近年来实现了飞越式的发展,我们 ...

  2. 过滤器为JSP文件生成静态页面

    用过滤器为JSP文件生成静态页面,这只是一个简单的实例,客户端浏览器第一次请求JSP页面时,服务器将生成对应的HTML文件,以后访问同一JSP文件,将转为访问生成的HTML文件.一.过滤器 packa ...

  3. html+jquery+php实现文件上传全过程

    本例子采用html+jquery+php实现上传功能 html部分 <!DOCTYPE html> <html> <head> <meta charset=& ...

  4. [Python+Java双语版自动化测试(接口测试+Web+App+性能+CICD)

    [Python+Java双语版自动化测试(接口测试+Web+App+性能+CICD)开学典礼](https://ke.qq.com/course/453802)**测试交流群:549376944**0 ...

  5. selenuim模块的使用 解析库

    selenium: 是自动化测试工具,我们可以用它来进行爬虫. 可以驱动浏览器,执行自定义好的任务. 可以执行js代码 执行速度慢,效率低. 一般用于做登录的认证 基本选择器: find_elemen ...

  6. Vue 之指令篇

    文件指令 <body>    <div id="app">        <!-- 1) 插值表达式 -->        <p>{ ...

  7. SysTick功能总结

    一.初始化SysTick 按1ms来设置systick,也可以除以1000000.按1us来设置 SysTick_Config(SystemCoreClock / 1000); //SysTick开启 ...

  8. OC学习篇之---谓词(NSPredicate)

    在前一篇文章中我们介绍了OC中一个重要技术通知:http://blog.csdn.net/jiangwei0910410003/article/details/41923401,今天我们在来看一下OC ...

  9. 工程师技术(三):独立Web站点的快速部署、虚拟Web主机的部署、配置网页内容访问、使用自定Web根目录、配置安全Web服务、部署并测试WSGI站点

    一.独立Web站点的快速部署 目标: 本例要求为 http://server0.example.com 配置Web站点,要求如下: 1> 从http://classroom/pub/materi ...

  10. python基础三(深浅拷贝)

    1.赋值操作 list_1 = [1,2,3,['barry','Jerry']] list_2 = list_1 list_1[0] = 111 print(list_1) # [111, 2, 3 ...