自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

书唐瑞的博客

www.infuq.com/

  • 博客(5)
  • 收藏
  • 关注

原创 Netty源码下载与编译

在学习Netty源码的过程中,有时候需要针对某个版本的源码进行修改,测试一些功能点.这个时候我们就需要下载指定版本的源码,修改一些配置,让源码可以正常编译成功.1.下载指定版本的源码访问 https://github.com/netty/netty/tags选择需要的版本并下载zip解压并导入到IDEA2.修改前提: 电脑上安装了JDK1.8修改parent的pom.xml中的compiler<maven.compiler.source>1.8</maven.compile

2021-02-26 21:47:40 1691

原创 Netty中的LengthFieldBasedFrameDecoder解码器

假如客户端给服务端发送数据,那么服务端的​Netty从网络中读取的数据都是连续的字节流数据,同时粘包和拆包也在’捣乱’,如何读取一个完整的数据包, 这个重担就落在了解码器的身上.本篇文章介绍下使用广泛的LengthFieldBasedFrameDecoder解码器.在介绍之前, 先看个总览图简单描述上面这张图, 假如客户端给服务端发送数据.第一次​当数据(HEL)到达服务端之后,Netty中的NioByteUnsafe类会从TCP缓冲区将数据(HEL)读取出来并封装成一个ByteBuf传给帧解码器.

2021-02-26 14:10:44 2155

原创 Dubbo与Netty杂谈

在Dubbo的’人生’中, 无论它是在自己的’亲爸爸’阿里家族成长, 还是’寄养’在Apache家族里, Dubbo的底层通信一直使用高性能的Netty框架.Dubbo在阿里家族一直成长到v2.6.9版本之后,就被送到Apache家族了.通过Maven官网搜索Dubbo版本, 如下从上面两张图看出, Dubbo在阿里家族的Maven最高版本是v2.6.9, 在Apache家族的Maven最低版本是v2.7.0, 正好衔接.在之前的Netty在Dubbo中使用了哪些Handler文章中, 介绍了在

2021-02-24 22:23:23 1501 1

原创 Netty模拟OOM-Metaspace

在模拟OOM之前, 先简单说下Netty服务端向客户端发送数据的时候, 涉及两个存储数据的地方, 如下图所示业务线程在向客户端发送数据的时候, 是不能直接把数据发送到网络的, 只有IO线程才可以把数据发送到网络, 因此业务线程只能把数据封装成一个任务放到与IO线程关联的一个Queue中, 之后IO线程会从Queue中取出任务, 执行写操作, 将数据写到网络. 因此这个Queue就是存储数据的第一个地方.在之前的文章中,介绍过 使用Netty模拟发生OOM , 那里说的OOM是指java.lang.Ou

2021-02-22 21:47:51 521

原创 Netty中的永动机

​永动机即’永远运动的机器’.作为服务端时, 需要接收客户端的连接, 需要接收客户端的数据, 或者向客户端发送数据.既然需要接收客户端的连接, 那么就需要一个IO线程永远的执行一个无限循环.只有一直循环着, 才能一直接收新的连接.​NioEventLoop的底层绑定一个线程, 这个线程在启动之后, 就会一直无限循环着, 而且只做三件事1.轮询IO事件2.处理IO事件3.执行任务当有新的客户端连接到服务端的时候(TCP三次握手已经完成), 服务端的IO线程就会轮询到有客户端的连接事件. 接下来

2021-02-21 21:40:43 269 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除