搜索结果
查询Tags标签: ByteBuf,共有 16条记录-
Netty(6):ByteBuf
ByteBuf的创建 通过ByteBufAllocator.DEFAULT.buffer()进行创建ByteBufByteBuf buffer = ByteBufAllocator.DEFAULT.buffer();System.out.println(buffer);StringBuilder sb = new StringBuilder();for (int i = 0; i < 33; i++) {sb.append("a");}buffer.wr…
2022/5/22 23:02:48 人评论 次浏览 -
Netty使用中出现java.base/java.lang.String cannot be cast to io.netty.buffer.ByteBuf
原因:解码器用错,客户端或服务端选择ByteBuf封装消息,但是ChannelInitializer继承类中使用了String的解码器,String不能转成ByteBuf,把消息解码成String抛出来了。解决方法:1.去掉解码器 2.客户端或服务端的消息不用ByteBuf封装,直接传String
2022/4/23 17:12:48 人评论 次浏览 -
5. ByteBuf
第5章 ByteBuf Netty提供的ByteBuf与JDK的ByteBuffer相比,前者具有卓越的功能性和灵活性。 5.1 ByteBuf的API ByteBuf提供读访问索引(readerIndex)和写访问索引(writerIndex)来控制字节数组。ByteBuf API具有以下优点:允许用户自定义缓冲区类型扩展通过内置的复合缓冲区类…
2022/2/18 23:20:56 人评论 次浏览 -
Lettuce源码阅读(一)之普通的get命令
一、简介 基于Lettuce连接Redis单机和集群的客户端代码,在这篇文章中,给出了使用 Lettuce API 的大致流程。 本文将着力分析一下背后的源码。 首先,回顾一下使用 Lettuce 客户端调用 get 命令的大致流程:// 步骤1:连接信息 RedisURI redisURI = RedisURI.create(&quo…
2022/1/27 17:06:23 人评论 次浏览 -
Netty 源码分析系列(八)Netty 如何实现零拷贝,字节跳动Java岗经典面试真题
1、Java提供 mmap/write 方式 Java NIO 提供的MappedByteBuffer,用于提供mmap/write方式。 Java NlO 中 的Channel (通道)就相当于操作系统中的内核缓冲区,有可能是读缓冲区,也有可能是网络缓冲区,而Buffer就相当于操作系统中的用户缓冲区。 以下是一个MappedByteBuff…
2021/11/13 17:12:59 人评论 次浏览 -
Netty 源码分析系列(八)Netty 如何实现零拷贝,字节跳动Java岗经典面试真题
1、Java提供 mmap/write 方式 Java NIO 提供的MappedByteBuffer,用于提供mmap/write方式。 Java NlO 中 的Channel (通道)就相当于操作系统中的内核缓冲区,有可能是读缓冲区,也有可能是网络缓冲区,而Buffer就相当于操作系统中的用户缓冲区。 以下是一个MappedByteBuff…
2021/11/13 17:12:59 人评论 次浏览 -
Netty入门与实战教程
目录一、Netty是什么?二、服务端启动类详解引导类ServerBootstrap的其它方法三、客户端启动类详解客户端重新连接四、数据传输的载体:ByteBufByteBuf的API五、实战:服务端和客户端全双工通信客户端实现服务端实现六、自定义客户端与服务端的通信协议什么是通信协议?通…
2021/10/18 6:10:15 人评论 次浏览 -
Netty入门与实战教程
目录一、Netty是什么?二、服务端启动类详解引导类ServerBootstrap的其它方法三、客户端启动类详解客户端重新连接四、数据传输的载体:ByteBufByteBuf的API五、实战:服务端和客户端全双工通信客户端实现服务端实现六、自定义客户端与服务端的通信协议什么是通信协议?通…
2021/10/18 6:10:15 人评论 次浏览 -
netty源码之业务逻辑处理
目录 前言 流程 1、业务逻辑的入口,read 2、从pipeline的链表上依次执行前言 红色的部分就是我们这次分析的核心pipeline , 本质上是一个双向的链接,请注意是双向 , 它有head、tail , 中间有很多Context , 每个context 包含了需要执行的handler ,我们可以正向或者反向…
2021/7/27 22:06:03 人评论 次浏览 -
netty源码之业务逻辑处理
目录 前言 流程 1、业务逻辑的入口,read 2、从pipeline的链表上依次执行前言 红色的部分就是我们这次分析的核心pipeline , 本质上是一个双向的链接,请注意是双向 , 它有head、tail , 中间有很多Context , 每个context 包含了需要执行的handler ,我们可以正向或者反向…
2021/7/27 22:06:03 人评论 次浏览 -
netty源码之读取数据
目录前话 1、读数据的技巧 2、简约流程 3、读数据的本质 流程 1、读取数据前话 1、读数据的技巧2、简约流程 3、读数据的本质 流程读数据的轮询和接收连接是一样的 ,都是在NioEventLoop对象的run方法里,但是在最终读的时候,调用了另外一个对象,AbstractNioByteChanne…
2021/7/27 22:06:01 人评论 次浏览 -
netty源码之读取数据
目录前话 1、读数据的技巧 2、简约流程 3、读数据的本质 流程 1、读取数据前话 1、读数据的技巧2、简约流程 3、读数据的本质 流程读数据的轮询和接收连接是一样的 ,都是在NioEventLoop对象的run方法里,但是在最终读的时候,调用了另外一个对象,AbstractNioByteChanne…
2021/7/27 22:06:01 人评论 次浏览 -
网络编程五
Netty组件再了解 Channel、EventLoop 和ChannelFuture Netty 网络抽象的代表 Channel—Socket; EventLoop—控制流、多线程处理、并发; ChannelFuture—异步通知。 Channel 接口 基本的I/O 操作(bind()、connect()、read()和write())依赖于底层网络传输所提供的原语。…
2021/6/29 22:22:06 人评论 次浏览 -
Netty由浅入深的学习指南(入门)
本章节会介绍EventLoop、Channel、Future、Pipeline、Handdler、ByteBuf等重要的组件。 2.1 netty的优势 Netty vs NIO 需要自己构建协议解决TCP传输问题,如粘包、半包epoll空轮巡导致CPU 100%对API进行增强,使之更易用 Netty vs 其他网络应用框架 迭代快API更加的简洁文…
2021/5/13 10:26:55 人评论 次浏览 -
Netty编解码器源码分析(上)(详细分析在注释中说明)
文章目录 行解码器:以/r/n 或者/n结尾的字节流基于分隔符解码器分析基于长度域解码器分析总结步骤:解码定义:解码是指将二进制数据流转换成一个个bytebuf.首先分析解码器顶层抽象类@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws E…
2021/5/9 20:55:28 人评论 次浏览