![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
Qgwperfect
这个作者很懒,什么都没留下…
展开
-
reactor模型
转载 这里写链接内容Reactor模型 Reactor模型的中心思想是将所有要处理的IO事件及其处理器注册到一个中心的IO多路复用器上,并将主线程阻塞在多路复用器上;当有相应的IO事件到达时,多路复用器将IO事件分发给相应的处理器进行处理.Reactor模型的模型图如下所示, 其中包括几个核心组件:Initiation Dispatcher(分发器): 这是Reactor模型的中心组件...转载 2018-07-31 10:44:59 · 330 阅读 · 0 评论 -
netty是什么
1,异步事件驱动框架,用于快速开发高性能服务端和客户端2,封装了JDK底层的NIO和BIO模型,提供高度可用的API3,自带编解码器解决粘包拆包问题,用户只需关心业务逻辑4,精心设计的reactor线程模型支持高并发海量连接5,自带各种协议栈,几乎不用亲自动手就能处理任何一种通用协议...原创 2019-03-29 16:11:05 · 165 阅读 · 0 评论 -
netty为什么引导类是Cloneable的
摘自 《netty实战》你有时可能会需要创建多个具有类似配置或者完全相同配置的Channel。为了支持这种模式而又不需要为每个Channel都创建并配置一个新的引导类实例,AbstractBootstrap被标记为了Cloneable。在一个已经配置完成的引导类实例上调用clone()方法将返回另一个可以立即使用的引导类实例。注意,这种方式只会创建引导类实例的EventLoopGroup的...原创 2018-12-18 09:40:40 · 162 阅读 · 0 评论 -
【10】基于echo例子的netty4通信总结
转自 http://xw-z1985.iteye.com/blog/1973205在netty4源码分析系列文章中分别详细介绍了echo例子中涉及到网络通讯的每一个环节,本文对echo例子中服务端和客户端依次发生的步骤做个总结:服务端依次发生的步骤建立服务端监听套接字ServerSocketChannel,以及对应的管道pipeline;启动boss线程,将ServerSocketC...转载 2018-11-28 15:15:01 · 113 阅读 · 0 评论 -
【2】netty4源码分析-socket
转自 http://xw-z1985.iteye.com/blog/1918063服务端启动的第一步必须先创建一个监听套接字ServerSocketChannel,该过程是由ChannelFuture f = b.bind(port)中的bind触发。下面详细分析其过程:Bind源码如下,代码位于ServerBootstrap的父类AbstractBootstrap//AbstractB...转载 2018-11-28 14:32:44 · 192 阅读 · 0 评论 -
【9】netty4源码分析- read
转自 http://xw-z1985.iteye.com/blog/1972779当selector检测到OP_READ事件时,触发read操作://NioEventLoop if ((readyOps & (SelectionKey.OP_READ | SelectionKey.OP_ACCEPT)) != 0 || readyOps == 0) { ...转载 2018-11-28 14:20:22 · 132 阅读 · 0 评论 -
【1】netty4服务端启动源码分析-线程的创建
本文分析Netty中boss和worker的线程的创建过程:以下代码是服务端的启动代码,线程的创建就发生在其中。EventLoopGroup bossGroup = new NioEventLoopGroup();NioEventLoopGroup的类关系图如下:构造方法执行过程如下:// NioEventLoopGroup public NioEventLoopGroup() {...转载 2018-11-28 14:07:32 · 180 阅读 · 0 评论 -
【8】netty4源码分析-flush
转自 http://xw-z1985.iteye.com/blog/1971904Netty的写操作由两个步骤组成:Write:将msg存储到ChannelOutboundBuffer中Flush:将msg从ChannelOutboundBuffer中flush到套接字的发送缓冲区中。上一篇文章分析了write,本文接着分析第二步flush://DefaultChannelHandl...转载 2018-11-28 14:10:09 · 262 阅读 · 0 评论 -
【7】netty4源码分析-write
Netty的写操作由两个步骤组成:Write:将msg存储到ChannelOutboundBuffer中Flush:将msg从ChannelOutboundBuffer中flush到套接字的发送缓冲区中。本文介绍第一个步骤write//DefaultChannelHandlerContext public ChannelFuture write(Object msg) { ...转载 2018-11-28 14:09:54 · 151 阅读 · 0 评论 -
【6】netty4源码分析-accept
转自 http://xw-z1985.iteye.com/blog/1941800本文分析服务端如何accept客户端的connect请求,首先看下selector的I/O多路复用的分发逻辑://NioEventLoop private static void processSelectedKey(SelectionKey k, AbstractNioChannel ch) { ...转载 2018-11-28 14:09:14 · 154 阅读 · 1 评论 -
【5】netty4源码分析-connect
转自 http://xw-z1985.iteye.com/blog/1937999客户端向服务端发起connect请求由以下代码触发:ChannelFuture f = b.connect(host, port).sync(); 调用Bootstrap的connect方法://Bootstrap public ChannelFuture connect(String inetH...转载 2018-11-30 13:39:22 · 329 阅读 · 0 评论 -
【4】Netty4源码分析-NioEventLoop实现的线程运行逻辑
转自 http://xw-z1985.iteye.com/blog/1928244在netty服务端启动源码分析-线程创建一文中已分析SingleThreadEventExecutor所持有的线程的运行逻辑由NioEventLoop实现,那么本文就着手分析NioEventLoop实现的线程运行逻辑:// NioEventLoop protected void run() { ...转载 2018-11-30 11:49:38 · 156 阅读 · 0 评论 -
【3】netty4源码分析-bind
转自 http://xw-z1985.iteye.com/blog/1924124在前一篇文章中分析了监听套接字ServerSocketChannel的创建过程,本文接着分析绑定IP和端口的过程。回到之前未分析完的doBind逻辑,前一篇文章已分析到dobind方法中initAndRegister方法,该方法最终触发了对regPromise 的listener的回调,Listener将bi...转载 2018-11-30 11:38:28 · 209 阅读 · 0 评论 -
netty—数据传输载体ByteBuf 中的getbyte()、getshort()、getint()
问题:目前自学Netty中,正好学到数据传输载体ByteBuf的使用,对于其中的get方法获取到的值不理解。先输入byte类型的1、2、3、4,再输入int类型的12,最后输入byte类型的5、6。输出buffer.getByte(3)=4,这个很容易理解,接下来我就懵逼了。输出buffer.getShort(3)=1024,why?输出buffer.getInt(3)=6710...转载 2019-10-10 22:33:05 · 1792 阅读 · 0 评论