Netty
本笔记是我通过对 尚硅谷Netty视频教程 的视频学习而总结的.
当然还有来自于网络上的资料以及个人总结.
如果不想让我分享请联系我删除.
拖地的服务生
要想练就绝世武功
就要忍受常人难忍受的痛
展开
-
5.不完全的 NioEventLoopGroup & NioEventLoop 源码分析
NioEventLoopGroup 在 4.一个简单的 Netty 服务端 文章中, 创建服务端时需要先实例化两个 NioEventLoopGroup 分别为 bossGroup 和 workerGroup. bossGroup: 只是处理连接请求. workerGroup: 处理客户端业务逻辑. 上图是该类的继承关系, 我个人觉得没必要去了解完全这些类的作用, 只需要记住几个重点类就可以了. EventExecutorGroup 该接口虽然继承了 java.util.concurrent.Sched原创 2020-06-21 21:20:27 · 182 阅读 · 0 评论 -
4.一个简单的 Netty 服务端
阿萨德原创 2020-06-18 13:57:04 · 116 阅读 · 0 评论 -
3. Netty 模型
关于 2.线程模型概述 有人问能回答上来就可以了. 但是对于 Netty 模型来说, 一定要了解透彻后才继续学习. 下面的图是我自己根据网上疯传的一种一张 Netty 模型图改的, 看着是不是有点像 主从 Reactor 多线程. Netty 抽象出了两组线程池, BossGroup 专门用来处理客户端连接, WorkerGroup 专门负责网络读写. 这两组线程池的类型为 NioEventLoopGroup. 每一个 NioEventLoopGroup 都包含一个或多个 NioEventLoop, Ni原创 2020-06-17 21:03:15 · 116 阅读 · 0 评论 -
2.线程模型概述
目前存在的线程模型有: 传统阻塞 IO 服务模型 Reactor 模式, 根据 Reactor 数量和处理资源池线程的数量不同, 又有 3 重典型的实现. 单 Reactor 单线程 单 Reactor 多线程 主从 Reactor 多线程. 传统阻塞 IO 服务模型 一个线程对应一个客户端, 如果客户端过多就会占用很大的系统资源. 没有可读数据时, 线程会阻塞, 造成资源浪费. Reactor 模式 下图只是对 Reactor 模式的一个整体理念, 当涉及到三个具体实现时, 有不同的变化.原创 2020-06-17 14:39:44 · 170 阅读 · 0 评论 -
1.Netty 概述
原生 NIO 存在的问题 NIO 的类库和 API 繁杂, 使用麻烦: 需要熟练掌握 Selector, ServerSocketChannel, SocketChannel, ByteBuffer 等. 需要具备其它的额外技能: 要熟悉 Java 多线程编程, 因为 NIO 涉及到 Reactor(反应器) 模式. 开发工作量和难度非常大: 例如客户端面临断线重连, 网络闪断, 半包读写, 失败缓存, 网络阻塞和异常流的处理. Netty Netty 是一个 异步 事件驱动 网络应用框架. 用来快速原创 2020-06-16 21:15:32 · 117 阅读 · 0 评论