netty
netty
wenyixicodedog
文一西路代码狗
展开
-
netty writeAndFlush源码分析
目录 一、 背景 二、源码一、背景writeAndFlush,顾名思义,就是写入(发送缓冲区)并且刷新,熟悉netty编码的同学对这个方法一定不会感到陌生,这方法既能将数据写到发送缓存中,也能刷新到channel中。二、源码以在动态长度解码器那节中使用的例子为入口,我们进入到writeAndFlush看看其执行逻辑。public class LengthFieldBasedFrameDecoderTestClient {...原创 2020-11-28 21:48:05 · 685 阅读 · 0 评论 -
netty零拷贝之CompositeByteBuf
目录一、背景简介二、netty零拷贝一、背景简介在TCP网络数据传输过程中,数据包有可能被分割为独立的几个数据包进行发送,对于服务器接收端来说,单个的数据包是没有任何意义的,只有将这些数据包组合到一起,才能接收后解码然后提供给我们的业务层进行处理,而在数据报价进行整合的过程中,零拷贝做的工作就是避免或者减少内存区域中数据的复制次数,进而提高程序的响应性能。二、netty零拷贝netty对于零拷贝有几种不同的形式,其本质上都是讲两个或者多个Byte...原创 2020-11-02 23:17:40 · 999 阅读 · 0 评论 -
netty ByteOrder大小端
ByteOrder直译的意思就是字节序。在计算机网络二进制传输的过程中,字节存在两种序列化顺序:高位字节序和低位字节序。高位字节序:高位字节在前,低位字节在后(内存地址低位在前,高位地址在后)。低位字节序:低位字节在前,高位字节在后(内存地址低位在前,高位地址在后)。netty中默认字节序是大端字节序,即字节高位在前,低位在后,符合人类的书写习惯。ByteOrder类也比较简单,只存在返回高位还是低位的ByteOrder和描述ByteOrder的name字段。 public fina.原创 2020-11-02 23:15:05 · 1914 阅读 · 0 评论 -
netty粘包拆包之LengthFieldBasedFrameDecoder解码器
目录 一、 背景简介 二、应用 三、源码一、背景简介LengthFieldBasedFrameDecoder 基于长度字段解码器,是一个非常灵活、强大的解码器,他能够根据我们动态配置的参数对接收到的消息进行动态解码,以满足实际的业务需求。当解码具有消息头长度字段表示该消息主体或整个消息的长度的二进制消息时,它是特别有用的。二、应用在这里先简单看下LengthFieldBasedFrameDecoder类中的核心字段。这些字...原创 2020-10-31 23:05:10 · 832 阅读 · 0 评论 -
netty粘包拆包之DelimiterBasedFrameDecoder解码器
目录 一、 背景简介 二、应用 三、源码一、背景简介DelimiterBasedFrameDecoder 基于自定义分隔符解码器,他能够按照我们自定义的特殊符号或者字符作为分隔符对接收到的消息进行分段解码,在服务端接收到信息进行解析的时候DelimiterBasedFrameDecoder的构造方法需要传递两个参数maxFrameLength和可变长参数delimiters,maxFrameLength用来限制对接收到的数据进行解...原创 2020-10-25 12:03:07 · 4212 阅读 · 1 评论 -
netty粘包拆包之LineBasedFrameDecoder解码器
目录 一、背景简介 二、应用 三、源码一、背景简介LineBasedFrameDecoder基于回车换行符解码器,他能够按照我们输入的回车换行符(\r or \r\n)对接收到的消息进行解码,在服务端接收到信息进行解析的时候LineBasedFrameDecoder的构造方法需要传递一个参数maxLength,用来限制对接收到的数据进行解码的时候一次解码的最大长度。如果在解码的过程中对传递的数据搜索到了换行符,那么换行符之前的数据(...原创 2020-10-22 00:39:16 · 1450 阅读 · 2 评论 -
netty粘包拆包之FixedLengthFrameDecoder解码器
目录 一、背景简介 二、应用 三、源码一、背景简介FixedLengthFrameDecoder固定长度解码器,他能够按照我们指定的固定长度(frameLength)对接收到的消息进行解码,如果我们接收到的消息字节数等于frameLength,则认为是一次完整的消息传输,如果我们接收到的消息字节数小于frameLength,则服务端在decode()处理的时候会返回null,所以客户端在传输数据的时候如果消息字节数小于frameL...原创 2020-10-18 14:04:47 · 1960 阅读 · 0 评论 -
netty源码之ByteBuf详解
目录 一、背景简介 二、ByteBuf和ByteBuffer对比 三、源码 一、背景简介ByteBuf,顾名思义,就是字节缓冲区,是Netty中非常重要的一个组件。熟悉jdk NIO的同学应该知道ByteBuffer,正是因为jdk原生ByteBuffer使用比较复杂,某些场景下性能不是太好,netty开发团队重新设计了ByteBuf用以替代原生ByteBuffer。 二、ByteBuf和ByteBuffer对比...原创 2020-10-18 02:03:43 · 484 阅读 · 1 评论 -
netty单线程模型
目录 一、netty简介 二、netty线程模型 一、netty简介Netty是由JBOSS提供的一个java开源框架,用以提供异步的、事件驱动的网络应用程序框架和工具,快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端的编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于...原创 2020-10-01 01:14:06 · 856 阅读 · 0 评论