随笔分类 -  2.4.├─ Netty

1 2 3 下一页

关闭连接:本质是取消 Channel 在 Selelctor 的注册
摘要:关闭连接:本质是取消 Channel 在 Selelctor 的注册 [toc] __Netty 系列目录()__ 1. 主线分析 1.1 主线 关闭连接分两种:主动关闭(正常关闭)和被动关闭(异常关闭)。 多路复用器(Selector)接收到 OP_READ 事件 处理 OP_READ 事件:Ni 阅读全文

posted @ 2020-04-06 19:35 binarylei 阅读(1811) 评论(0) 推荐(0) 编辑

发送数据:自适应写和连接写同样是为了解决什么问题
摘要:发送数据:自适应写和连接写同样是为了解决什么问题 [toc] __Netty 系列目录()__ 发送数据和接收数据比较类似,可以将这两部分结合起来学习。 "接收数据:自适应缓冲区和连接读是为了解决什么问题" 1. 主线分析 1.1 写数据要点 和读数据一样,写数据我们也会碰到以下问题: 1. 每次写 阅读全文

posted @ 2020-04-06 17:15 binarylei 阅读(757) 评论(0) 推荐(0) 编辑

处理业务:事件是如何在 pipeline 中传播的
摘要:处理业务:事件是如何在 pipeline 中传播的 [toc] __Netty 系列目录()__ 在上一节 "接收数据:自适应缓冲区和连接读是为了解决什么问题" 中,我们知道 NioEventLoop 不断的轮询,接收 OP_READ 事件;然后将读取到的数据通过 pipeline.fireChan 阅读全文

posted @ 2020-04-06 10:49 binarylei 阅读(1894) 评论(0) 推荐(1) 编辑

接收数据:自适应缓冲区和连接读是为了解决什么问题
摘要:接收数据:自适应缓冲区和连接读是为了解决什么问题 [toc] __Netty 系列目录()__ 到目前为止,我们已经启动服务,并接收了客户端连接,双方已经可以正式通信。下面就要处理请求:接收数据、业务处理、发送数据。 1. 主线分析 1.1 读数据技巧 接收数据我们会碰到以下问题: 1. 缓冲区大小 阅读全文

posted @ 2020-04-06 08:36 binarylei 阅读(936) 评论(0) 推荐(0) 编辑

NIO 源码分析(05) Channel 源码分析
摘要:NIO 源码分析(05) Channel 源码分析 [toc] __Netty 系列目录()__ 一、Channel 类图 __功能说明:__ 提供了 Channel 响应 thread.interrupt(),支持中断操作,最重要的两个方法是 begin 和 end。 提供了 Channel 注册 阅读全文

posted @ 2019-07-07 18:21 binarylei 阅读(862) 评论(0) 推荐(0) 编辑

NIO 源码分析(04) 从 SelectorProvider 看 JDK SPI 机制
摘要:NIO 源码分析(04) 从 SelectorProvider 看 JDK SPI 机制 [toc] __Netty 系列目录()__ SelectorProvider 定义了创建 Selector、ServerSocketChannel、SocketChannel 等方法,采用 JDK 的 Ser 阅读全文

posted @ 2019-07-07 18:13 binarylei 阅读(1723) 评论(0) 推荐(0) 编辑

NIO 源码分析(03) 从 BIO 到 NIO
摘要:NIO 源码分析(03) 从 BIO 到 NIO [toc] __Netty 系列目录()__ 一、NIO 三大组件 Channels、Buffers、Selectors 1.1 Channel 和 Buffer 基本上,所有的 IO 在 NIO 中都从一个 Channel 开始。Channel 有 阅读全文

posted @ 2019-07-07 09:01 binarylei 阅读(508) 评论(0) 推荐(0) 编辑

NIO 源码分析(02-2) BIO 源码分析 Socket
摘要:NIO 源码分析(02 2) BIO 源码分析 Socket [toc] __Netty 系列目录()__ 在上一篇文章中详细分析了 ServerSocket 的源码,Socket 和 ServerSocket 一样也只是一个门面模式,真正的实现也是 SocksSocketImpl,所以关于 set 阅读全文

posted @ 2019-07-06 21:56 binarylei 阅读(624) 评论(0) 推荐(0) 编辑

NIO 源码分析(02-1) BIO 源码分析
摘要:NIO 源码分析(02 1) BIO 源码分析 [toc] __Netty 系列目录()__ 一、BIO 最简使用姿势 __(1) JDK BIO 启动服务典型场景__ ok,代码已经完成!!!下面我们和 Linux 下的网络编程进行对比。 __(2) Linux BIO 启动服务典型场景__ 对比 阅读全文

posted @ 2019-07-06 11:19 binarylei 阅读(1457) 评论(1) 推荐(2) 编辑

NIO 源码分析(01) NIO 最简用法
摘要:NIO 源码分析(01) NIO 最简用法 [toc] __Netty 系列目录()__ Java NIO 主要由三个部分组成:Channel、Buffer 和 Selector。在分析源码前最好对 NIO 的基本用法和 Linux NIO 在一个基本的了解。 1. "NIO 入门" 2. "Lin 阅读全文

posted @ 2019-07-04 21:20 binarylei 阅读(564) 评论(0) 推荐(0) 编辑

Linux NIO 系列(04-4) select、poll、epoll 对比
摘要:Linux NIO 系列(04 4) select、poll、epoll 对比 [toc] __Netty 系列目录()__ 既然 select/poll/epoll 都是 I/O 多路复用的具体的实现,之所以现在同时存在,其实他们也是不同历史时期的产物 select 出现是 1984 年在 BSD 阅读全文

posted @ 2019-07-04 06:05 binarylei 阅读(2840) 评论(1) 推荐(1) 编辑

Linux NIO 系列(04-3) epoll
摘要:Linux NIO 系列(04 3) epoll [toc] __Netty 系列目录()__ 一、why epoll 1.1 select 模型的缺点 1. 句柄限制:单个进程能够监视的文件描述符的数量存在最大限制,通常是 1024,当然可以更改数量,但由于select采用轮询的方式扫描文件描述符 阅读全文

posted @ 2019-07-03 07:31 binarylei 阅读(570) 评论(0) 推荐(0) 编辑

Linux NIO 系列(04-2) poll
摘要:Linux NIO 系列(04 2) poll [toc] __Netty 系列目录()__ 一、select 和 poll 比较 select() 和 poll() 系统调用的本质一样,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是 poll() 没有最大文件描述符数量的限制(但是数量 阅读全文

posted @ 2019-07-03 06:23 binarylei 阅读(400) 评论(0) 推荐(0) 编辑

Linux NIO 系列(04-1) select
摘要:Linux NIO 系列(04 1) select [toc] __Netty 系列目录()__ select 系统调用的的用途是:在一段指定的时间内,监听用户感兴趣的文件描述符上可读、可写和异常等事件。 一、select 机制的优势 为什么会出现 select 模型? 先看一下下面的这句代码: i 阅读全文

posted @ 2019-07-03 06:04 binarylei 阅读(552) 评论(0) 推荐(0) 编辑

Linux NIO 系列(03) 非阻塞式 IO
摘要:Linux NIO 系列(03) 非阻塞式 IO [toc] __Netty 系列目录()__ 一、非阻塞式 IO 阻塞和非阻塞 I/O 是设备访问的两种不同模式,驱动程序可以灵活地支持这两种用户空间对设备的访问方式。 一般我们在 open() 文件或打开文件后通过 iocntl() 或 fcntl 阅读全文

posted @ 2019-07-02 21:53 binarylei 阅读(537) 评论(0) 推荐(0) 编辑

Linux NIO 系列(02) 阻塞式 IO
摘要:Linux NIO 系列(02) 阻塞式 IO [toc] __Netty 系列目录()__ 一、环境准备 yum install y gcc nc man socket 帮助手册 "关于 Linux 下 man 手册的安装和使用点击这里" 1.1 代码演示 __(1) 编译__ [root@loc 阅读全文

posted @ 2019-07-02 21:15 binarylei 阅读(733) 评论(0) 推荐(0) 编辑

netty源码分析 - Recycler 对象池的设计
摘要:netty源码分析 Recycler 对象池的设计 1. 《netty源码分析4 Recycler对象池的设计》: 2. 《Netty 对象池实践优化》: 3. 《Netty轻量级对象池实现分析》: [toc] 一、为什么需要对象池 减少创建对象时内存分配的消耗,对象的内存分配机制见: 对象进行重用 阅读全文

posted @ 2019-06-27 08:30 binarylei 阅读(892) 评论(0) 推荐(0) 编辑

Netty 源码 ChannelHandler(四)编解码技术
摘要:Netty 源码 ChannelHandler(四)编解码技术 __Netty 系列目录()__ 一、拆包与粘包问题 由于 TCP 是面向字节流的,什么意思呢:虽然应用程序和 TCP 的交互是一次一个数据块(大小不等),但 TCP 把应用程序交下来的数据仅仅看成式一连串的无结构的字节流。TCP 并不 阅读全文

posted @ 2018-12-21 08:17 binarylei 阅读(269) 评论(0) 推荐(0) 编辑

Netty 源码 ChannelHandler(三)概述
摘要:Netty 源码 ChannelHandler(三)概述 __Netty 系列目录()__ 一、ChannelInboundHandler 和 ChannelOutboundHandler Netty 中的事件分为 Inbound 事件和 Outbound 事件。 Inbound 事件通常由 IO 阅读全文

posted @ 2018-12-20 21:47 binarylei 阅读(236) 评论(0) 推荐(0) 编辑

Netty 源码 Channel(二)核心类
摘要:Netty 源码 Channel(二)核心类 [toc] __Netty 系列目录()__ 相关文章: "4.1 Netty 源码 Channel(一)概述" "4.2 Netty 源码 Channel(二)核心类" 1. Channel 类图 2. AbstractChannel 2.1 几个重要 阅读全文

posted @ 2018-12-20 08:30 binarylei 阅读(322) 评论(0) 推荐(0) 编辑

1 2 3 下一页

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

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