大数据Netty:数据处理流程

Posted 课工场

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据Netty:数据处理流程相关的知识,希望对你有一定的参考价值。






Netty作为异步的、事件驱动一个网络通信框架,使用它可以帮助我们快速开发高性能高可靠性的网络服务。


为了更好的使用Netty来解决开发中的问题,学习Netty是很有必要的。

Netty现在主流有三个版本:Netty3、Netty4、Netty5。这三个版本中,变化最大的要数线程模型了,各版本的线程模型均不相同。


但是有一点是变化不大的,那就是Channel模型,因而数据处理流程也不会有太大的变化。


所以本篇就来说一下Netty的数据处理流程。


Channel 模型



关于Netty Channel的模型,做了一个简易图:


一个Channel中包括一个Socket、一个ChannelPipeline。


一个ChannelPipeline中有一个ChannelSink和多个ChannelHandler。


ChannelHandler分为两种:UpstremHandler、DownstreamHandler。

 

不论是读数据还是写数据都要经过Channel中的ChannelPipeline。


读数据的过程是从Socket到ChannelPipeline,由ChannelPipeline交给里面的UpstreamHandler(或者叫做InBoundHandler)从下到上依次处理 。


写数据时,由要经过ChannelPipeline里面在DownStreamHandler(或者是OutBoundHandler)由上到下依次处理。

 


Channel的创建



Channel主要分为两种:


ServerSocketChannel、SocketSocketChannel。(这里不对是否是NIO作区分。


ServerSocketChannel的创建在bind时自动完成,SocketChannel的创建由Netty帮助完成。


不论是客户端在创建连接时, 还是服务端接收到客户端连接时,SocketChannel的创建都是由Netty帮助完成。

         在创建Channel时,就会自动调用相应的ChannelPipeline创建器来创建了。


在创建ChannelPipeline时,可以由用户配置相关的ChannelHandler。


ServerSocketChannel可以由用户定制一个ChannelHandler,SocketChannel则可以由用户定制多个ChannelHandler。

 

在各版本中用于定制的方法可能是不同的。



ChannelHandler



Netty是由事件驱动的框架,任何操作操作都是由事件来驱动的。


ChannelHandler就是一个Event Hander(事件处理器),它的作用是:


处理IO事件(读写),例如读取数据,并解码。


处理兴趣事件。


交给下一个ChannelHandler处理。

 



文章来源于课工场微社区,感谢课工场老同学的知识分享。

也欢迎新同学加入课工场大家庭,好好学习天天向上!





学互联网课程

就来课工场kgc.cn

▼ 点击阅读原文   

立即访问课工场微社区大数据板块

以上是关于大数据Netty:数据处理流程的主要内容,如果未能解决你的问题,请参考以下文章

netty源码之读取数据

netty源码之读取数据

一文搞懂 Netty 的整体流程,还有谁不会?

一文了解 Netty 整体流程

大数据成神之路-Netty(源码解析篇)

Netty|01 入门学习