随笔分类 - Netty学习笔记
立志成为一个Netty大佬,哈哈
摘要:前言 上一节( "堆外内存与零拷贝" )当中我们从jvm堆内存的视角解释了一波零拷贝原理,但是仅仅这样还是不够的。 为了彻底搞懂零拷贝,我们趁热打铁,接着上一节来继续讲解零拷贝的底层原理。 感受一下NIO的速度 之前的章节中我们说过,Nio并不能解决网络传输的速度。但是为什么很多人却说Nio的速度比
阅读全文
摘要:前言 到目前为止,我们知道Nio当中有三个最最核心的组件,分别是:Selelctor,Channel,Buffer。在 "Netty基础系列(3) 彻底理解NIO" 这一篇文章中只是进行了大致的介绍。 我们现在来深入理解一下Buffer在 堆内创建内存 和 堆外创建内存 的底层原理,与 零拷贝 的具
阅读全文
摘要:前言 何为编解码,通俗的来说,我们需要将一串文本信息从A发送到B并且将这段文本进行加工处理,如:A将信息文本信息 编码 为2进制信息进行传输。B接受到的消息是一串2进制信息,需要将其 解码 为文本信息才能正常进行处理。 上章我们介绍的Netty如何解决拆包和粘包问题,就是运用了解码的这一功能。 ja
阅读全文
摘要:前言 上一篇我们介绍了如果使用Netty来开发一个简单的服务端和客户端,接下来我们来讨论如何使用解码器来解决TCP的粘包和拆包问题 TCP为什么会粘包/拆包 我们知道,TCP是以一种流的方式来进行网络转播的,当tcp三次握手简历通信后,客户端服务端之间就建立了一种通讯管道,我们可以想象成自来水管道,
阅读全文
摘要:引言 前面我们介绍了网络一些基本的概念,虽然说这些很难吧,但是至少要做到理解吧。有了之前的基础,我们来正式揭开Netty这神秘的面纱就会简单很多。 服务端 我们来分析一下上面的这段代码(下面的每一点对应上面的注释) 1~2:首先我们创建了两个NioEventLoopGroup实例,它是一个由Nett
阅读全文
摘要:前言 上一节中我们提到了同步异步与阻塞非阻塞的区别,知道了同步并不等于阻塞。而本节的主角NIO是一种 同步非阻塞的I/O模型 ,并且是 I/O多路复用模型 。NIO在java中被称为 New I/O。它并不能提高I/O处理的效率,注意我这里说的是效率,而从根本上解决的是I/O处理的并发问题。 那么N
阅读全文
摘要:引言 在进行I/O学习的时候,阻塞和非阻塞,同步和异步这几个概念常常被提及,但是很多人对这几个概念一直很模糊。要想学好Netty,这几个概念必须要掌握清楚。 同步和异步 同步与异步的区别在于,异步基于通知,当程序执行完毕后后,会有一个通知的机制来告知你程序执行完毕;而同步则没有,只能通过自己调用AP
阅读全文
摘要:引言 我一直认为对于java的学习,掌握基础的性价比要远远高于使用框架,而基础知识中对于网络相关知识的掌握也是重中之重。对于一个java程序来说,无论是工作中还是面试,对于Netty的掌握都是及其重要的。所以博主下定决心深度的学习一下Netty并且做下笔记与心得,供大家一起学习探讨。 Netty的卓
阅读全文