Java NIO系列教程(八)JDK AIO编程
摘要:目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》-
阅读全文
posted @
2017-04-28 18:14
duanxz
阅读(2965)
推荐(0) 编辑
Java NIO系列教程(十一) Pipe
摘要:Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: 1 Pipe pipe = Pipe.open(); 1 P
阅读全文
posted @
2017-04-28 18:13
duanxz
阅读(851)
推荐(0) 编辑
零拷贝(zero-copy)
摘要:零拷贝(zero-copy)是一种目前只有在使用 NIO 和 Epoll 传输时才可使用的特性。它使你可以快速 高效地将数据从文件系统移动到网络接口,而不需要将其从内核空间复制到用户空间,其在像 FTP 或者 HTTP 这样的协议中可以显著地提升性能。但是,并不是所有的操作系统都支持这一特性。特别地
阅读全文
posted @
2017-04-28 18:12
duanxz
阅读(1330)
推荐(0) 编辑
NIO文件锁FileLock
摘要:目录 《linux文件锁flock》 《NIO文件锁FileLock》 《java程序怎么在一个电脑上只启动一次,只开一个进程》 文件锁可以是shared(共享锁)或者exclusive(排他锁)。不是所有的平台都以同一种方式实现文件锁,不同的操作系统可能不同,同一操作系统上的不同文件系统也可能不同
阅读全文
posted @
2017-04-28 18:11
duanxz
阅读(1719)
推荐(0) 编辑
Java NIO系列教程(七) selector原理 Epoll版的Selector
摘要:目录: Reactor(反应堆)和Proactor(前摄器) 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《【转】第8章 前摄器(Proactor):用于为异步事件多路分离和分派处理器的对象行为模式》 《Java NIO系列教程(八)JDK AIO编程》-
阅读全文
posted @
2017-04-28 18:11
duanxz
阅读(2302)
推荐(0) 编辑
Java NIO系列教程(六) 多路复用器Selector
摘要:多路复用器Selector是Java NIO编程的基础,熟练地掌握Selector对于掌握NIO编程至关重要。多路复用器提供选择已经就绪的任务的能力。简单来讲,Selector会不断地轮询注册在其上的Channel,如果某个Channel上面有新的TCP连接接入、读和写事件,这个Channel就处于
阅读全文
posted @
2017-04-28 18:08
duanxz
阅读(4918)
推荐(0) 编辑
Java NIO系列教程(五)Buffer
摘要:Java NIO中的Buffer用于和NIO通道进行交互。如你所知,数据是从通道读入缓冲区,从缓冲区写入到通道中的。交互图如下: 缓冲区本质上是一块可以写入数据,然后可以从中读取数据的内存。这块内存被包装成NIO Buffer对象,并提供了一组方法,用来方便的访问该块内存。缓冲区实际上是一个容器对象
阅读全文
posted @
2017-04-24 23:51
duanxz
阅读(1459)
推荐(0) 编辑
Java NIO系列教程(四) Scatter/Gather
摘要:Java NIO开始支持scatter/gather,scatter/gather用于描述从Channel(译者注:Channel在中文经常翻译为通道)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Chann
阅读全文
posted @
2017-04-24 23:47
duanxz
阅读(1372)
推荐(0) 编辑
Java NIO系列教程(三) Channel之Socket通道
摘要:目录: 《Java NIO系列教程(二) Channel》 《Java NIO系列教程(三) Channel之Socket通道》 在《Java NIO系列教程(二) Channel》介绍了FileChannel,本章节介绍socket通道类。 一、Socket通道 新的socket通道类可以运行非阻
阅读全文
posted @
2017-04-24 23:46
duanxz
阅读(13298)
推荐(2) 编辑
Java NIO系列教程(二) Channel通道介绍及FileChannel详解
摘要:目录: 《Java NIO系列教程(二) Channel》 《Java NIO系列教程(三) Channel之Socket通道》 Channel是一个通道,可以通过它读取和写入数据,它就像自来水管一样,网络数据通过Channel读取和写入。通道与流的不同之处在于通道是双向的,流只是在一个方向上移动(
阅读全文
posted @
2017-04-24 23:44
duanxz
阅读(11321)
推荐(1) 编辑
Java NIO系列教程(一) Java NIO 概述
摘要:《I/O模型之四:Java 浅析I/O模型》 一、阻塞IO与非阻塞IO 阻塞IO: 通常在进行同步I/O操作时,如果读取数据,代码会阻塞直至有 可供读取的数据。同样,写入调用将会阻塞直至数据能够写入。传统的Server/Client模式会基于TPR(Thread per Request),服务器会为
阅读全文
posted @
2017-04-24 23:07
duanxz
阅读(14443)
推荐(2) 编辑
Mina2 udp--zhengli
摘要:一、包与类名。 1、所有类和方法严格使用驼峰法命名。例:SSLFilter 更名为 SslFilter。NIO传输类在命名时增加 Nio 前缀。因为NIO 并不是 socket/datagram 传输的实现,NIO 的所有传输类前缀增加 Nio 。之前Java代码: [java] view plai
阅读全文
posted @
2017-04-24 09:51
duanxz
阅读(416)
推荐(0) 编辑
NIO框架之MINA源码解析(五):NIO超级陷阱和使用同步IO与MINA通信
摘要:1、NIO超级陷阱 之所以说NIO超级陷阱,就是因为我在本系列开头的那句话,因为使用缺陷导致客户业务系统瘫痪。当然,我对这个问题进行了很深的追踪,包括对MINA源码的深入了解,但其实之所以会出现这个问题,它的根不是MINA的原因,而是JDK底层的问题。 JDK底层在实现nio时,为了能够唤醒等待在i
阅读全文
posted @
2017-04-23 23:14
duanxz
阅读(452)
推荐(0) 编辑
NIO框架之MINA源码解析(四):粘包与断包处理及编码与解码
摘要:1、粘包与段包 粘包:指TCP协议中,发送方发送的若干包数据到接收方接收时粘成一包,从接收缓冲区看,后一包数据的头紧接着前一包数据的尾。造成的可能原因: 发送端需要等缓冲区满才发送出去,造成粘包 接收方不及时接收缓冲区的包,造成多个包接收 断包:也就是数据不全,比如包太大,就把包分解成多个小包,多次
阅读全文
posted @
2017-04-23 23:13
duanxz
阅读(741)
推荐(0) 编辑
mina2中的session
摘要:简介 session类图 Mina每建立一个连接同时会创建一个session对象,用于保存这次读写需要用到的所有信息。从抽象类AbstractIoSession中可以看出session具有如下功能: 1、从attributes成员可以看出session可以存放用户关心的键值对 2、注意到WriteR
阅读全文
posted @
2017-04-23 23:12
duanxz
阅读(2646)
推荐(1) 编辑
mina2的processor
摘要:processor顾名思义,就是进行IO处理,处理当前session的数据读写,并进行业务处理。 在mina server初始化的时候,会初始化一个processor池,通过NioSocketAcceptor的构造器传入池的大小,默认是当前处理器的个数+1。 processor池里面有一个jdk提供
阅读全文
posted @
2017-04-23 23:10
duanxz
阅读(363)
推荐(0) 编辑
I/O模型之一:Unix的五种I/O模型
摘要:目录: 《I/O模型之一:Unix的五种I/O模型》 《I/O模型之二:Linux IO模式及 select、poll、epoll详解》 《I/O模型之三:两种高性能 I/O 设计模式 Reactor 和 Proactor》 《I/O模型之四:Java 浅析I/O模型》 基本 Linux I/O 模
阅读全文
posted @
2016-05-18 23:00
duanxz
阅读(2103)
推荐(3) 编辑
websocket之四:WebSocket 的鉴权授权方案
摘要:引子 WebSocket 是个好东西,为我们提供了便捷且实时的通讯能力。然而,对于 WebSocket 客户端的鉴权,协议的 RFC 是这么说的: This protocol doesn’t prescribe any particular way that servers canauthentic
阅读全文
posted @
2016-04-27 22:31
duanxz
阅读(25078)
推荐(0) 编辑
java websocket @ServerEndpoint注解说明
摘要:http://www.blogjava.net/qbna350816/archive/2016/07/24/431302.html https://segmentfault.com/q/1010000004955225 https://www.cnblogs.com/interdrp/p/40910
阅读全文
posted @
2016-04-27 12:34
duanxz
阅读(5219)
推荐(1) 编辑
MQTT协议QoS2 准确一次送达的实现
摘要:MQTT QoS 熟悉MQTT协议的同学们一定知道,MQTT的publish有三个QoS,0,1,2。他们分别是: QoS0,最多一次送达。也就是发出去就fire掉,没有后面的事情了。 QoS1,至少一次送达。发出去之后必须等待ack,没有ack,就要找时机重发 QoS2,准确一次送达。消息id将拥
阅读全文
posted @
2016-04-23 13:59
duanxz
阅读(2323)
推荐(0) 编辑