Netty
文章平均质量分 82
你的酒窝里有酒
加油!!!
展开
-
Netty的writeAndFlush流程分析
Netty的writeAndFlush流程分析1、Write操作writeAndFlush是一个典型的出站操作,如果调用者是channel则从tail节点向前传播。 public final ChannelFuture writeAndFlush(Object msg) { return tail.writeAndFlush(msg); }看TailContext的writeAndFlush方法。会调用write方法,其中flush参数的值为true。先调用write原创 2021-07-19 21:56:12 · 3209 阅读 · 2 评论 -
LengthFieldBasedFrameDecoder解析
LengthFieldBasedFrameDecoder源码解析LengthFieldBasedFrameDecoder 是netty中功能最强大,应用最广泛的一个解码器,可以方便的用其解析用户的自定义协议。1、参数说明lengthFieldOffset 长度域的偏移量,简单而言就是偏移几个字节是长度域lengthFieldLength : 长度域的所占的字节数lengthAdjustment : 长度值的调整值initialBytesToStrip : 需要跳过的长度值如图所示:上面原创 2021-07-18 11:41:53 · 5780 阅读 · 2 评论 -
RPC实战与核心原理笔记<三>
RPC实战与核心原理笔记<三>1、服务的发现1.1、为什么需要服务发现在RPC调用中,consumer端需要知道provider的ip和端口分别是多少,只有这样才可以建立TCP连接,才能发送数据。那么如何告诉consumer关于provider的这些信息呢?另外,这些信息可能会随时发生变化,例如provider扩容了,缩容了,重启端口变化了…因此这个如果写死,或者类似的方式肯定是不行的,因为这个信息是随时变化的,那么如何解决呢?这里便引入了服务发现。提供服务发现的是注册中心。之所以和注册中心之间原创 2021-07-14 22:02:14 · 718 阅读 · 1 评论 -
RPC实战与核心原理笔记<二>
RPC实战与核心原理笔记<二>1、通信协议提到协议,可能最熟悉不过的就是HTTP,HTTPS协议,TCP,UDP协议等等。那么什么是协议呢?简单而言协议就是一种规定,或者说是一种规定,就像咱们的语言一样,要有一个统一的标准,不然是无法通信的,不能互相理解。2、协议的作用只有二进制数据才能在网络中进行传播,应用程序将数据写到socket缓冲区后,通过网卡发送到网络中,由于缓冲区和滑动窗口的存在,可能将一个包分成好几个小包进行发送,也有可能将几个小包合成一个大包进行发送,至于如何合并或者拆分,这个是程序原创 2021-07-13 22:12:57 · 1035 阅读 · 1 评论 -
【Netty报错:】XXXDecoder.decode() did not read anything but decoded a message.
Netty解码器报错:XXXDecoder.decode() did not read anything but decoded a message.从字面意思来看,就是说没有读取任何数据,但是却解析出来了一个对象。1、问题引出在写自定义的基于String的解码器的时候,在使用该解码器进行解码的时候会抛出这个异常。对应的解码器代码很简单,就是将ByteBuf转化为一个字符串,然后添加到list中,供后面的handler进行处理。编码器代码也很简单,就是将字符串变成一个byte数组,写到Byt原创 2020-11-25 10:18:30 · 2915 阅读 · 1 评论