Netty流程剖析 — I/O就绪操作源码剖析 前言前面一篇我们梳理了Netty服务的启动流程,这一小节,我们开始分析I/O就绪操作,I/O就绪操作大致可以划分为三个大的部分,第一个部分是OP_ACCEPT操作,这个部分我们接着上一小节继续分析,当服务启动之后,客户端向服务端发起连接,服务端是怎么如果处理连接,并且设置监听OP_READ。第二个部分也就是OP_READ操作的上半部分,随着客户端通过建立的连接通道发送数据到服务端,服务端又是怎么接 2022-02-24 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络 源码剖析
Netty流程剖析 — 服务启动源码剖析 前言前面几个小节,我们梳理了几个核心组建,深入的分析了这几个组建的工作原理和一些实现细节,但是细看局部总是难以获得一个全局的视角,很难把它们真正的串起来。在梳理完这几个组件之后,我最想知道的就是启动的时候和读写操作的时候,这几个组件是怎么配合工作。虽然我也看过一切流程图,和一些简单的总结,但是自己没有深入过源码总感觉缺了点什么。我相信只有真正分析调试过源码才能真正理解,各个组件之间是怎么协作的,各 2022-02-17 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络 源码剖析
Netty核心组件源码剖析 — ByteBuf 前言在上一小节中,我们介绍channel,channel 的主要功能有处理网络IO读写,处理连接。这里需要注意的是channel仅仅是负责读写操作,在NIO中真正负责传输数据的是Buffer(缓冲区)。在NIO中,缓冲区的作用也是用来临时存储数据,可以理解为I/O数据的中转站。缓冲区直接对接channel,为其提供写入和读取的数据。通过操作buffer批量进行数据传输提高效率。在NIO中主要有八种 2021-12-25 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络 源码剖析
Netty核心组件源码剖析 — Channel 前言上一小节我们梳理了NioEventLoop,通过梳理我们知道,NioEventLoop本质上就是封装的执行线程,线程通过NioEventLoopGroup构造创建。NioEventLoop通过select()方法监听selectKey触发对应连接,读/写事件。并在每次的循环中执行一定的任务队列中的任务。而每次事件的触发都是基于Channel实现的。这里的Channel不是NIO中的Channe 2021-11-05 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络 源码剖析
Netty核心组件源码剖析 — NioEventLoop 前言从这一小节我们开始深入源码学习,我们的源码分析会围绕着《Netty源码剖析与应用》这本书来学习,并且结合自己分析看源码,毕竟只有自己看到才是真的。这一小节我们要分析梳理核心组件NioEventLoop的源码,从源码角度看看NioEventLoop到底做了哪些事。第一次深入的研究源码学习,源码看得的确挺头大的,但是通过源码角度对Netty又有了一个全新的认知收获很多,那我们就一起来分析以下Nio 2021-10-16 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络 源码剖析
Netty实战 — 基础Demo与API网关实战 前言上一小节我们总结了Reactor模型,Netty基于主从Reactor模型设计了自己的模型结构,使得Netty在不同的场景下都有非常亮眼的性能和可用性表现。进入到这一小节,我又想到了那句话”Talk is cheap, show me code”。虽然上一小节我们简单写了一个“快速开始”,但是这对于要达到快速使用Netty进行网络开发的目的还远远不够。在一小节中我们会通过一系列的Demo示例熟 2021-10-06 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络
网络编程 — Reactor模型与Netty入门 前言前面我们介绍了网络的基础知识,socket网络编程和IO模型,这一小节我们来入门Netty。对于很多程序员来说,Netty是非常遥远的。很多程序员认为平时的开发过程中基本不会使用到Netty,如果你也是这么认为的那就大错特错了。因为我们虽然不会直接写Netty的代码,但是我们每天都在间接使用Netty,大到我们的RPC框架dubbo、大数据的Hadoop,小到Redis的工具包,几乎所有实现网 2021-09-22 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络
网络编程 — Socket编程与IO模型 前言前面的两小节,我们介绍了网络的基础知识包括一些网络模型和协议。我们常说Talk is cheap, show me code.这一小节我们将解锁Socket网络编程,通过Socket来编写简单一些简单的网络小程序。我很早之前就接触过Socket网络编程,也能写一些简单的程序,但是始终感觉socket离我很遥远,不清楚socket到底是什么以及socket是如何工作的。如果你也有和我一样的疑问, 2021-09-15 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络
网络基础 — 深入理解TCP协议 前言前面一小节我们介绍了网络模型和一些网络协议,其中最大头TCP协议我们挖了一个坑,这一小节我们来填坑。这一小节我们主要分成三大块,第一部分我们将介绍,TCP的三次握手和四次挥手,通过简单的交互维护一个状态机之后建立一个稳定可靠的连接。我们有了一个稳定的连接,我们还需要数据包地稳定发送和接收。有了上面两个保障之后,如何充分利用网络带宽,成了最后的问题,这里我们介绍了传统算法和BBR算法。梳理完以上 2021-09-04 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络
网络基础 — 网络模型与网络协议 前言从这一小节,我们开始梳理网络相关的知识结构。网络对于程序员非常重要,可以说离开了网络软件程序就失去了70%的魔力。但是程序员对于网络相关的领域是又爱又恨,爱是因为网络赋予程序无限的可能性,恨是因为网络对软件开发来说几乎是透明的,不用刻意的去调整网络,我们也能进行业务的开发。掌握网络相关的知识并不容易,网络相关的领域的知识内容复杂且涉及范围广。可是如果要成为一个优秀的开发工程师,进行网络相关的开 2021-09-04 NIO与网络编程 Java知识结构梳理 学习总结 计算机网络