netty
左耳听风
公众号:左耳代码
展开
-
NIO原理详解
1.阻塞与同步2.BIO与NIO对比3.NIO简介4.缓冲区Buffer5.通道Channel6.反应堆7.选择器8.NIO源码分析9.AIO1.阻塞与同步1)阻塞(Block)和非租塞(NonBlock):阻塞和非阻塞是进程在访问数据的时候,数据是否准备就绪的一种处理方式,当数据没有准备的时候阻塞:往往需要等待缞冲区...原创 2018-08-18 17:22:13 · 75440 阅读 · 16 评论 -
netty设计原理
1.简介Netty是一个高性能、异步事件驱动的NIO框架,基于JAVA NIO提供的API实现。它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通信行业等...原创 2018-09-02 15:39:41 · 1155 阅读 · 1 评论 -
Netty 源码分析-客户端
源码版本4.1.61.BootstrapBootstrap 是 Netty 提供的一个便利的工厂类, 我们可以通过它来完成 Netty 的客户端或服务器端的 Netty 初始化. 下面我以 Netty 源码例子中的 Echo 服务器作为例子, 从客户端和服务器端分别分析一下Netty 的程序是如何启动的.2.客户端部分2.1.连接源码(入口)首先, 让我们从客户端方面...转载 2018-09-02 15:40:59 · 518 阅读 · 0 评论 -
Netty 源码分析-服务端
1.服务器端在分析客户端的代码时, 我们已经对 Bootstrap 启动 Netty 有了一个大致的认识, 那么接下来分析服务器端时, 就会相对简单一些了. 首先还是来看一下服务器端的启动代码:static final boolean SSL = System.getProperty("ssl") != null;static final int PORT = Integer.pa...转载 2018-09-02 15:41:36 · 455 阅读 · 0 评论 -
Netty 源码分析-ChannelPipeline
1.Channel 与 ChannelPipeline相信大家都知道了, 在 Netty 中每个 Channel 都有且仅有一个 ChannelPipeline 与之对应, 它们的组成关系如下:通过上图我们可以看到, 一个 Channel 包含了一个 ChannelPipeline, 而 ChannelPipeline 中又维护了一个由 ChannelHandlerConte...转载 2018-09-02 15:42:30 · 424 阅读 · 1 评论 -
Netty 源码分析-EventLoop
NioEventLoopGroup在Netty源码分析-客户端章节中我们已经知道了, 一个 Netty 程序启动时, 至少要指定一个 EventLoopGroup(如果使用到的是 NIO, 那么通常是 NioEventLoopGroup), 那么这个 NioEventLoopGroup 在 Netty 中到底扮演着什么角色呢? 我们知道, Netty 是 Reactor 模型的一个实现, 那...转载 2018-09-16 17:28:30 · 906 阅读 · 1 评论 -
Netty源码分析-终结篇
1.Promise 与 Futurehttps://docs.scala-lang.org/zh-cn/overviews/core/futures.html2.Handler的各种姿势2.1.ChannelHandlerContext每个ChannelHandler被添加到ChannelPipeline后,都会创建一个ChannelHandlerContext并 与之创...转载 2018-09-16 17:29:11 · 10087 阅读 · 0 评论