01.Netty进阶之粘包与半包现象分析

[TOC]一、粘包现象服务端代码import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.*; import io.netty.channel.nio.NioEventLoopGroup; import io.netty.channel.socket.SocketChannel; import io.netty.ch...

Java 2022-06-13 PM 1238次 0条

11.Netty之ByteBuf介绍(三)

[TOC]一、内存回收(retain & release)由于 Netty 中有堆外内存(直接内存)的 ByteBuf 实现,堆外内存最好是手动来释放,而不是等 GC 垃圾回收。UnpooledHeapByteBuf 使用的是 JVM 内存,只需等 GC 回收内存即可UnpooledDirectByteBuf 使用的就是直接内存了,需要特殊的方法来回收内存PooledByteBuf 和它的子...

Java 2022-06-12 AM 1409次 0条

10.Netty之ByteBuf介绍(二)

[TOC]一、ByteBuf组成ByteBuf由四部分组成说明ByteBuf 是一个字节容器,容器里面的的数据分为四个部分第一个部分是已经丢弃的字节,这部分数据是无效的;(已经读过的内容)第二部分是可读字节,这部分数据是 ByteBuf 的主体数据, 从 ByteBuf 里面读取的数据都来自这一部分;(已经写入但还未读取的内容)第三部分数据是可写字节,所有写到 ByteBuf 的数据都会写到...

Java 2022-06-12 AM 1156次 0条

09.Netty之ByteBuf介绍(一)

[TOC]一、概述ByteBuf是对NIO中ByteBuffer的增强。相比于ByteBuffer,Netty 的 ByteBuf 具有卓越的功能性和灵活性。ByteBuf API 的优点可以被用户自定义的缓冲区类型扩展通过内置的复合缓冲区类型实现透明的零拷贝容量可以按需增长在读和写这两种模式之间切换不需要调用 ByteBuffer 的 flip() 方法在读和写使用了不同的索引支持方法的链...

Java 2022-06-11 PM 1523次 0条

08.Netty之Handler与Pipeline

[TOC]一、概述ChannelHandler 用来处理 Channel 上的各种事件,分为入站、出站两种。所有 ChannelHandler 被连成一串,就是 Pipeline入站处理器通常是 ChannelInboundHandlerAdapter 的子类,主要用来读取客户端数据,写回结果;出站处理器通常是 ChannelOutboundHandlerAdapter 的子类,主要对写回结...

Java 2022-06-10 PM 975次 0条

07.Netty之Future与Promise

[TOC]一、概述Future与Promise在异步处理时,经常用到这两个接口首先要说明 netty 中的 Future 与 jdk 中的 Future 同名,但是是两个接口,netty 的 Future 继承自 jdk 的 Future,而 Promise 又对 netty Future 进行了扩展。jdk Future:只能同步等待任务结束(或成功、或失败)才能得到结果;netty Fu...

Java 2022-06-10 PM 1033次 0条

06.Netty组件Channel介绍

[TOC]一、概述1.1 概念Channel是客户端和服务端建立的一个连接通道,是Netty抽象出来的网络I/O读写相关的接口。客户端有一个Channel(SocketChannel),服务端也有一个Channel(NioSocketChannel),当客户端和服务端建立连接后,客户端的Channel会跟服务端的Channel进行联通。1.2 Channel生命周期Channel的四个状态:...

Java 2022-06-09 PM 1377次 0条

05.Netty组件EventLoop使用

[TOC]一、概述1.1 EventLoopEventLoop(事件循环对象) 本质是一个单线程执行器(同时维护了一个 Selector),里面有 run 方法处理 Channel 上源源不断的 io 事件。它的继承关系比较复杂一条线是继承自 j.u.c.ScheduledExecutorService 因此包含了线程池中所有的方法另一条线是继承自 netty 自己的 OrderedEven...

Java 2022-06-08 PM 1193次 0条

【转载】04.Netty组件EventLoop介绍

[TOC]前言在本篇开始之前需要对之前文章《Netty线程模型》进行了解。本篇转载与大佬的技术文章《为什么 EventLoop 是 Netty 的精髓》简语:小编也是花了一些时间才读懂文章中的部分内容,但是对于理解EventLoop组件来说也启到了很大的作用。一、EventLoop 是什么EventLoop 这个概念其实并不是 Netty 独有的,它是一种事件等待和处理的程序模型,可以解决多...

Java 2022-06-08 PM 1102次 0条

03.Netty入门Demo

[TOC]一、目标开发一个简单的服务器端和客户端客户端向服务器端发送 hello, world服务器仅接收,不返回引入依赖<dependency> <groupId>io.netty</groupId> <artifactId>netty-all</artifactId> <version>4.1...

Java 2022-06-07 PM 1138次 0条