netty

来源:互联网 发布:南风捏脸数据2017 编辑:程序博客网 时间:2024/06/05 12:44

在JDK1.4推出JAVA NIO1.0之前,java同步阻塞通信模式在可靠性和性能方面存在很大的弊端。从JDK1.4开始,java支持异步非阻塞通信模式,java服务端并发读写能力得到极大的提升。


Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。


1.ChannelPipeline
ChannelPipeline实际上应该叫做ChannelHandlerPipeline,可以把ChannelPipeline看成是一个ChandlerHandler的链表,当需要对Channel进行某种处理的时候,Pipeline负责依次调用每一个Handler进行处理。ChannelPipeline并不是直接管理ChannelHandler,而是通过ChannelHandlerContext来间接管理。


2.Bootstrap的使用很像Builder模式,Bootstrap就是Builder,EventLoopGroup、Channel和Handler等是各种Part。稍有不同的是,准备好各种Part后,并不是直接build出一个Product来,而是直接通过connect()方法使用这个Product。connect()方法调用validate()方法看各个Part是否准备就绪,然后调用doConnect()方法。


3.ServerBootstrap比它的超类多了四个Part,bind()方法实际上是在AbstractBootstrap里定义的,bind()先调用validate()方法检查各个Part是否准备就绪,然后把工作交给了doBind()方法。doBind()方法首先调用initAndRegister()方法,然后把工作交给doBind0()。

0 0