netty
吴敏强
大学毕业有5年从事金融行业软件开发,之后一直在国内最大移动互联网医疗公司工作
展开
-
Netty 线程模型
1 Proactor和ReactorProactor和Reactor是两种经典的多路复用I/O模型,主要用于在高并发、高吞吐量的环境中进行I/O处理。I/O多路复用机制都依赖于一个事件分发器,事件分离器把接收到的客户事件分发到不同的事件处理器中,如下图:1.1 select,poll,epoll在操作系统级别select,poll,epoll是3个常用的I/O多路复用机制,简单了解一下将有助于我们...转载 2018-04-14 18:31:44 · 192 阅读 · 0 评论 -
NIO编程之ServerSocketChannel用法详解
之前一直看不懂NIO中的ServerSocketChannel和SocketChannel的区别,看了这篇博文,感觉通俗易懂,于是决定分享一下。。。。 在用nio通讯的过程我用以下情景给你模拟: 1. 学校(ServerSocketChannel) 2。 学校教务处(Selector) 3。 老师 (ServerSocket ) 4。 学生 (SocketChannel) 5。 员工...转载 2018-11-23 16:30:00 · 2579 阅读 · 0 评论 -
一文理解Netty模型架构
Netty是 一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。 JDK原生NIO程序的问题 JDK原生也有一套网络应用程序API,但是存在一系列问题,主要如下: NIO的类库和API繁杂,使用麻烦,你需要熟练掌握Selector、ServerSocketChannel、SocketChannel、ByteBuffer等 需要具备其它的额外技能做...转载 2018-11-16 17:00:02 · 256 阅读 · 0 评论 -
Netty原理剖析
1. Netty简介Netty是一个高性能、异步事件驱动的NIO框架,基于JAVA NIO提供的API实现。它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。 作为当前最流行的NIO框架,Netty在互联网领域、大数据分布式计算领域、游戏行业、通...转载 2018-04-24 10:07:16 · 138 阅读 · 0 评论 -
Netty4.0学习笔记系列之六:多种通讯协议支持
上文介绍了如何应用Netty开发自定义通讯协议,本文在此基础上进一步深化,研究如何同时支持不同的通讯协议。此处所谓的通讯协议,指的是把Netty通讯管道中的二进制流转换为对象、把对象转换成二进制流的过程。转换过程追根究底还是ChannelInboundHandler、ChannelOutboundHandler的实现类在进行处理。ChannelInboundHandler负责把二进制流转换为对象,...转载 2018-04-19 15:16:46 · 2158 阅读 · 0 评论 -
Netty4.0学习笔记系列之五:自定义通讯协议
Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对ByteBuf数据流进行处理,转换成http的对象。基于这个思路,我自定义一种通讯协议:Server和客户端直接传输java对象。实现的原理是通过Encoder把java对象转换成ByteBuf流进行传输,通过Decoder把ByteBuf转换成java对...转载 2018-04-19 15:11:44 · 268 阅读 · 0 评论 -
Netty4.0学习笔记系列之四:混合使用coder和handler
Handler如何使用在前面的例子中已经有了示范,那么同样是扩展自ChannelHandler的Encoder和Decoder,与Handler混合后又是如何使用的?本文将通过一个实际的小例子来展示它们的用法。该例子模拟一个Server和Client,两者之间通过http协议进行通讯,在Server内部通过一个自定义的StringDecoder把httprequest转换成String。Serve...转载 2018-04-19 14:32:46 · 133 阅读 · 0 评论 -
Netty4.0学习笔记系列之三:构建简单的http服务
本文主要介绍如何通过Netty构建一个简单的http服务。想要实现的目的是:1、Client向Server发送http请求。2、Server端对http请求进行解析。3、Server端向client发送http响应。4、Client对http响应进行解析。在该实例中,会涉及到http请求的编码、解码,http响应的编码、解码,幸运的是,Netty已经为我们提供了这些工具,整个实例的逻辑图如下所示:...转载 2018-04-19 14:24:32 · 159 阅读 · 0 评论 -
Netty4.0学习笔记系列之二:Handler的执行顺序
Handler在netty中,无疑占据着非常重要的地位。Handler与Servlet中的filter很像,通过Handler可以完成通讯报文的解码编码、拦截指定的报文、统一对日志错误进行处理、统一对请求进行计数、控制Handler执行与否。一句话,没有它做不到的只有你想不到的。Netty中的所有handler都实现自ChannelHandler接口。按照输出输出来分,分为ChannelInbou...转载 2018-04-19 14:19:22 · 338 阅读 · 0 评论 -
Netty4.0学习笔记系列之一:Server与Client的通讯
本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯机制进行验证。Server与Client建立连接后,会执行以下的步骤:1、Client向Server发送消息:Are you ok?2、Server接收客户端发送的消息,并打印出来。3、Server端向客户端发送消息:I am ok!4、Client接收Server端发送的消息,并打印出来,通讯结束。涉及到的类有...转载 2018-04-19 14:03:55 · 197 阅读 · 0 评论 -
通俗易懂地讲解TCP建立连接的三次握手和释放连接的四次挥手
TCP建立连接时,为什么要进行三次挥手? 每一次TCP连接都需要三个阶段:连接建立、数据传送和连接释放。三次握手就发生在连接建立阶段。 在谢希仁著《计算机网络》第四版中讲三次握手的目的是为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。在另一部经典的《计算机网络》一书中讲三次握手的目的是为了解决网络中存在延迟的重复分组的问题。 这两种不用的表述其实阐明的是同一个问题。 谢希...转载 2018-04-19 13:51:54 · 184 阅读 · 0 评论 -
Netty程序(业务线程异步)
有了之前的基础之后,我们从netty官网的示例(略做修改),来开始netty之旅。我们实现一个支持hello world版的netty程序。首先我们创建一个主类:侦听 http端口,启动服务import io.netty.bootstrap.ServerBootstrap; import io.netty.channel.Channel; import io.netty.channel.Chann...转载 2018-03-29 14:30:14 · 2962 阅读 · 0 评论 -
转NIO讲的非常清楚的文章
https://blog.csdn.net/kavu1/article/details/53125667转载 2018-11-23 16:52:13 · 198 阅读 · 0 评论