随笔分类 -  netty

netty源码剖析
摘要:TCP基于链接的协议,并且保证有序性。 但是,每个包的长度,需要明确,否则会发生粘包现象。 以下示例为一个自定义协议的例子,其中包含了拆包的内容。 所有的类: 协议类: 解码器类: 编码器类: 服务器处理类: 客户端处理类: 服务端启动类: 客户端启动类: 运行服务端,再运行客户端,即可完成测试。 阅读全文
posted @ 2019-08-12 04:13 陈标 阅读(153) 评论(0) 推荐(0)
摘要:编解码器的基类: 编码:MessageToByteEncode 解码:ByteToMessageDecoder 阅读全文
posted @ 2019-08-12 01:33 陈标 阅读(180) 评论(0) 推荐(0)
摘要:Nio 的ByteBuffer 和 Netty 的 ByteBuf 的区别: 1、ByteBuf 将 ByteBuffer的position 分解为:readIndex , writeIndex 因此,使用ByteBuf 就不再需要使用 filp 进行读写状态的切换,随时可以进行读写。 2、jdk 阅读全文
posted @ 2019-08-11 22:18 陈标 阅读(269) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-08-11 20:31 陈标 阅读(177) 评论(0) 推荐(0)
摘要:Pipeline 过滤器链,分入过滤器,出过滤器,出入过滤器。 出过滤器:*Outbound* 入过滤器:*Inbound* 出入过滤器:** 区别于springMVC的过滤器,springMVC仅仅有出入过滤器。要区分出,入过滤器,需要手工处理,类似于代理模式中,将具体执行代码的位置。 { 过滤器 阅读全文
posted @ 2019-08-11 01:10 陈标 阅读(139) 评论(0) 推荐(0)
摘要:Netty中的模型: 阅读全文
posted @ 2019-08-11 00:36 陈标 阅读(100) 评论(0) 推荐(0)
摘要:AdaptiveRecvByteBufAllocator 动态分配buffer大小的类。 如果前一次读取完全填满了分配的缓冲区,它将逐渐增加预期的可读字节数。(增加的方式:初始化类的时候,会预先设置好可以动态增加的值,代码如下:) 数组内存放的值:小于512的值,两个数的差值为16;大于512,值左 阅读全文
posted @ 2019-08-10 22:31 陈标 阅读(371) 评论(0) 推荐(0)
摘要:实现的功能: 运行一个服务端,运行多个客户端。在客户端1,发送消息,其余客户端都能收到客户端1发送的消息。 重点: 1、ByteBuffer在使用时,注意flip()方法的调用,否则读取不到消息。 服务端 客户端 阅读全文
posted @ 2019-08-09 15:50 陈标 阅读(571) 评论(0) 推荐(0)
摘要:重点: 1、0拷贝需要系统支持。 普通内存模型: java线程内存 --> 操作系统内存 --> 硬盘 直接内存模型: java --> 操作系统内存 --> 硬盘 两者对比,少了一步:直接内存直接操作系统内存,少了java线程内存到操作系统内存拷贝的这一步,所以提升了效率。 代码: java.ni 阅读全文
posted @ 2019-08-09 00:25 陈标 阅读(1098) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2019-08-08 20:29 陈标 阅读(86) 评论(0) 推荐(0)
摘要:是什么: 一个RPC框架。 阅读全文
posted @ 2019-08-08 03:24 陈标 阅读(351) 评论(0) 推荐(0)
摘要:重点是: 1、枚举DataType的定义 2、oneof的使用 阅读全文
posted @ 2019-08-08 03:07 陈标 阅读(1179) 评论(0) 推荐(0)

点击右上角即可分享
微信分享提示