很久没写了,一是觉得这后台不怎么方便,二是 写的时候突然觉得没兴趣了。

还好,今天突然想记一下,那就随便写吧。   

      

     1.一开始还是放几个连接。

      什么是 同步,异步,阻塞,非阻塞 : http://blog.csdn.net/historyasamirror/article/details/5778378

          从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式:http://blog.csdn.net/cutesource/article/details/6192016

相关文档: Scalable IO in Java

2.由于最近的一个项目要用到网络编程,以后也没怎么用过,只是网上看过一些,实际经验并不足,没办法从Tomcat7.0.2(具体版本号不记得了),把里面的

NIO给抽出来了,弄了个NIO_Server,还行,能用。但后面由于数据量比较大时,总有点不放心,然后想着以后方便维护和扩展,打算采用Netty,于是最近又开始学习

Netty 了,最新版本:netty-5.0.0.Alpha1,觉得这儿分析的不错:http://my.oschina.net/geecoodeer/blog?disp=1&catalog=0&sort=time&p=2

但别人的总是别人的,自己不去肯,体会不到其中的差别。于是开始读源码贝。

    3.下面就写写自己的一些体会,那里写错了或不对向各位专家指点。

      

        NIO 模式都差不多,只是细节的处理和扩展性及场景考虑,也就是Jetty,Netty,Mina,Tomcat中都是NIO事件处理模块,模式(架构)都应该差不多,只

是具体业务处理和扩展性不同巴了(目前我是这么认为的)。

      

      应该都是:一个或一组门神 (Accetpor) -------------->(一组Reactor)------>业务处理。跟餐馆差不多,几个负责招呼进门的,然后再分派给给里面相应

服务的。然后.......然后看你要什么服务罗.................

      然后说说Netty,个人觉得Netty类层次各命名有点拗口,特别是什么EventLoop,EventLoopGroup,EventExecutor…………。我去,真难懂,反正我看起来比较费劲,最后觉得好像是这个感觉了:

      1.凡是带Group,可以把Group想像成Pool,对应java里面的池子,一个Group调用引用的多个相应的不带Group的类。

2.EventExecutor应该线程调用者(也可以一个线程池),负责调用EventLoop(具体线程)处理相关业务。

3.流程大概是:EventExecutorGroup--->(调用)---->EventLoopGroup--->(调用)--->EventLoop--->处理业务,

当然其中,每次调用都是交给EventExecutor(调用线程池)去做,由 EventExecutor.next选择相应的线程去调用各个调用者。

      4.至于其它,得接着看,只把一个例子或协议看懂了(也说是主流程弄懂了),其它的都一样,具体有兴趣的可以自己研究了…………。

  说明:学艺不精,哪儿写的不对,自己多考虑哈。。…。……………

            

java io 网络编程 高性能NIO的更多相关文章

  1. Java IO网络编程经典模板

    本文会从传统的BIO到NIO再到AIO自浅至深介绍,并附上完整的代码讲解. 下面代码中会使用这样一个例子:客户端发送一段算式的字符串到服务器,服务器计算后返回结果到客户端. 代码的所有说明,都直接作为 ...

  2. Java网络编程和NIO详解3:IO模型与Java网络编程模型

    Java网络编程和NIO详解3:IO模型与Java网络编程模型 基本概念说明 用户空间与内核空间 现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32 ...

  3. Java网络编程和NIO详解5:Java 非阻塞 IO 和异步 IO

    Java网络编程和NIO详解5:Java 非阻塞 IO 和异步 IO Java 非阻塞 IO 和异步 IO 转自https://www.javadoop.com/post/nio-and-aio 本系 ...

  4. Java网络编程和NIO详解2:JAVA NIO一步步构建IO多路复用的请求模型

    Java网络编程与NIO详解2:JAVA NIO一步步构建IO多路复用的请求模型 知识点 nio 下 I/O 阻塞与非阻塞实现 SocketChannel 介绍 I/O 多路复用的原理 事件选择器与 ...

  5. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  6. Java网络编程和NIO详解9:基于NIO的网络编程框架Netty

    Java网络编程和NIO详解9:基于NIO的网络编程框架Netty 转自https://sylvanassun.github.io/2017/11/30/2017-11-30-netty_introd ...

  7. Java网络编程和NIO详解6:Linux epoll实现原理详解

    Java网络编程和NIO详解6:Linux epoll实现原理详解 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NIO h ...

  8. Java网络编程和NIO详解开篇:Java网络编程基础

    Java网络编程和NIO详解开篇:Java网络编程基础 计算机网络编程基础 转自:https://mp.weixin.qq.com/s/XXMz5uAFSsPdg38bth2jAA 我们是幸运的,因为 ...

  9. Java网络编程和NIO详解8:浅析mmap和Direct Buffer

    Java网络编程与NIO详解8:浅析mmap和Direct Buffer 本系列文章首发于我的个人博客:https://h2pl.github.io/ 欢迎阅览我的CSDN专栏:Java网络编程和NI ...

随机推荐

  1. TP5 行为Behavior用法说明

    TP5 行为Behavior用法说明 无论是tp3还是在tp5中,行为都是一个非常重要的概念,关于太多的理论知识,就不多说了,不了解的请查看开发文档:TP5 行为概述 以下,就由代码来一步一步实现行为 ...

  2. stark组件(11):组合搜索

    效果图: 新增函数和类 Option 获取字段的对象或元组 SearchGroupRow 封装数据,展示到前端 get_search_group 获取组合搜索的字段 get_search_group_ ...

  3. vue webpack build 打包过滤console.log()日志

    vue cli创建项目在 webpack.prod.conf.js文件 //打包时清除页面中所有打印及debugger断点 new webpack.optimize.UglifyJsPlugin({ ...

  4. 使用dataframe解决spark TopN问题:分组、排序、取TopN和join相关问题

    package com.profile.mainimport org.apache.spark.sql.expressions.Windowimport org.apache.spark.sql.fu ...

  5. 7 Django分页器文章分页

    1.复习 2.这节课要解决的问题? 3.分页的原理 4.准备工作 (1)创建Django项目 C:\Users\Administrator\Desktop\root3>django-admin ...

  6. 2599: [IOI2011]Race

    2599: [IOI2011]Race 链接 分析 被memset卡... 点分治,对于重心,遍历子树,记录一个数组T[i],表示以重心为起点的长度为i的路径中最少的边数是多少.然后先遍历子树,更新答 ...

  7. 被relativeLayout的grivate center 折腾死了

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...

  8. Eclipse 修改字符集---Eclipse教程第02课

    默认情况下 Eclipse 字符集为 GBK,但现在很多项目采用的是 UTF-8,这是我们就需要设置我们的 Eclipse 开发环境字符集为 UTF-8, 设置步骤如下: 在菜单栏选择 Window ...

  9. long转int

    由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况: 主要以下几种转换方法,供参考: 一.强制类型转换 [java] l ...

  10. Android学习记录(1)—Android中XML文件的序列化生成与解析

    xml文件是非常常用的,在android中json和xml是非常常用的两种封装数据的形式,从服务器中获取数据也经常是这两种形式的,所以学会生成和解析xml和json是非常有用的,json相对来说是比较 ...