`
iwinit
  • 浏览: 454822 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

深入浅出Netty之一概念模型

阅读更多

Netty是一个java领域常用的IO框架,小编最近简单看了下它的实现,和大家分享下。小编能力有限,有不对的地方还请大家指出。这个系列将分多个文章来完成,第一篇先简单介绍下netty的概念模型。使用的netty版本是3.5.11.Final。

Netty的核心概念可以用这个类图来表示:

模型

一.Bootstrap

   netty框架启动的工具类,分client,server和udp3种,其核心功能是初始化主channel

二.ChannelFactory

   创建Channel的工厂,接受ChannelPipeline参数,创建一个Channel。针对不同场景,netty提供了各种ChannelFactory,比如ServerChannelFactory用来创建server端的Channel,比如DatagramChannelFactory用来创建UDP的Channel

三.ChannelPipelineFactory

  创建ChannelPipeline的工厂,比如在server中接受一个请求(子channel)时,会使用ChannelPipelineFactory创建一个ChannelPipeline,并附给子channel。该类一般是用户定义,是netty提供的扩展接口,基于此用户可以自定义其事件处理流。

四.Channel

  Channel代表着一个通道,其封装了各种IO操作,比如bind,connect等,Channel还管理着一些配置信息,用户可以自定义一些IO参数。同时Channel是可以继承的,在server场景下,accept的channel会作为主channel的子channel存在。netty默认提供了各种Channel实现,包括OIO/NIO,udp/tcp,client/server等。Netty的channel是对java nio的封装。

五.ChannelPipeline

  ChannelPipeline管理着一些列由用户自定义的ChannelHandler,handler之间使用职责链组成。同时,它还提供了事件触发的入口,这些事件将在handler之间按注册顺序执行。

六.ChannelHandler

  事件处理器,主要分2个子接口ChannelUpstreamHandler和ChannelDownstreamHandler,分别处理UpstreamEvent和DownstreamEvent。这是业务方直接可扩展的接口,业务逻辑基本都封装在这里。一个handler也可以同时处理2种类型的事件。

七.ChannelEvent

  事件,流转方式分Upstream events和downstream events,类型分MessageEvent,ExceptionEvent,ChannelStateEvent,WriteCompletionEvent等。

 Upstream event主要有:messageReceived,exceptionCaught,channelOpen,channelClosed,channelBound,channelUnbound,channelConnected,writeComplete,channelDisconnected,channelInterestChanged,childChannelOpen,childChannelClosed等。

Downstream event主要有:write,bind,unbind,connect,disconnect,close等。

八.ChannelSink

  Downstream事件的最终处理者,所有downstream事件交给netty线程前都会被其处理。它是管理IO线程和事件处理的桥梁。同样针对不同的场景,netty提供了各种实现。

以上是netty的核心模型,事件流转如下图




 Upstream事件只会交给Upstream handler处理,downstream同理。


 

  • 大小: 95 KB
  • 大小: 84.8 KB
分享到:
评论

相关推荐

    深入浅出Netty ppt

    《深入浅出Netty》是针对Java网络编程框架Netty的一份详细讲解材料,由淘宝工程师精心制作,特别适合初学者。Netty是一款高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。...

    深入浅出Netty

    Netty是一种基于Java NIO操作的框架,它提供了异步的事件驱动的网络应用程序框架和工具,用于快速开发可维护的高性能协议服务器和客户端。Netty被广泛应用于互联网协议服务器和客户端的开发,包括但不限于HTTP服务器...

    深入浅出Netty_netty_

    《深入浅出Netty》是一本专注于讲解Netty框架的编程指南,非常适合初学者入门。Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。这本书通过详实的代码案例,...

    深入浅出Netty_netty5.0_

    《深入浅出Netty_netty5.0_》是针对Netty 5.0版本的一本详细教程,旨在帮助读者理解并熟练运用这一强大的网络编程框架。Netty是一个开源的Java框架,它为开发高效、稳定、可扩展的网络应用提供了全面的支持。在本文...

    深入浅出Netty文档.zip

    这个“深入浅出Netty文档”压缩包包含了一份详细的PDF文档,旨在帮助开发者深入理解Netty的工作原理及其在实际应用中的使用。 Netty 的核心是它的事件驱动模型,基于Java NIO(非阻塞I/O)实现。它提供了一种优雅的...

    深入浅出netty-3.rar

    《深入浅出Netty》是针对Java网络编程框架Netty的一份详细讲解文档,由阿里巴巴的专家编写。Netty是一个高性能、异步事件驱动的网络应用程序框架,它为开发可维护的高性能协议服务器和客户端提供了丰富的组件和API。...

    netty in action-深入浅出netty

    Netty是一款高性能、异步事件驱动的网络应用框架,它被设计用于简化网络编程,特别是对于TCP和UDP协议的服务端和客户端的开发。Netty通过利用Java的NIO类库,提供了高效的网络处理能力,并且具有很高的可定制性和...

    Netty进阶之路-跟着案例学Netty

    总的来说,《Netty进阶之路-跟着案例学Netty》是一本深入浅出、实践性强的Netty教程,无论你是初学者还是有一定经验的开发者,都能从中受益匪浅,提升你的网络编程技能。通过阅读这本书,你将能够熟练地利用Netty...

    NIO+Netty5视频教程与Netty源码剖析视频教程

    第一部分:深入浅出Netty源码剖析 这部分教程主要讲解Netty框架的内部工作机制,包括其设计模式、事件驱动模型、线程模型以及缓冲区等核心概念。Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可...

    Netty权威指南PDF书籍

    这本书籍《Netty 权威指南》深入浅出地介绍了 Netty 的核心概念、设计模式以及实际应用,是 IT 开发者深入理解和使用 Netty 的宝贵资源。 1. **Netty 概述** Netty 是由 JBoss 提供的一个开源框架,它简化了网络...

    netty全文指南-高清

    总之,《Netty 全文指南》高清版是一本深入浅出的教程,对于想要深入了解和使用 Netty 的开发者来说,能够提供宝贵的指导,帮助他们构建稳定、高效的网络应用。通过阅读这本书,你可以掌握 Netty 的核心概念、最佳...

    netty in action 中文版

    这本书深入浅出地介绍了Netty的核心概念、设计模式以及实际应用场景,帮助读者理解和掌握如何在Java环境中构建高效、可靠的网络应用程序。 Netty的核心特性之一是其基于NIO(非阻塞I/O)的模型。非阻塞I/O允许一个...

Global site tag (gtag.js) - Google Analytics