3 Netty componnents and design

来源:互联网 发布:7z暴力解压软件 编辑:程序博客网 时间:2024/05/16 06:54

3 Netty components and design


3.1 Channel,EvenetLoop,and ChannelFuture

*Channel——Sockets

*EventLoop——控制流,多线程,并发

*ChannelFuture——异步通知


3.1.1 Interface Channel

Netty中Channel接口API降低了原始Socket API的复杂度。

实现的类有:

*EMbeddedChannel

*LocalServerChannel

*NioDatagramChannel

*NioSctpChannel

*NioSocketChannel


3.1.2 Interface EventLoop


These relationships are:

* 一个EventLoopGroup包含一个或多个EventLoops

* 一个EventLoop是一个线程

* 所有i/o事件被EventLoop处理,在它专用的线程里

* A Channel is registered for its lifetime with a single EventLoop.

* 一个EventLoop可以被分配给一个或多个通道


3.1.3 Interface ChannelFuture

把ChannelFuture看作是一个将在未来执行的操作结果的占位符。


3.2 ChannelHandler and ChannelPipeline

管理数据流和处理应用业务逻辑的组件


3.2.1 Interface ChannelHandler

ChannelPipeline是一系列ChannelHandlers的集合并定义了在他们之间入站出站流的传播事件API。

ChannelHandlers被安装在ChannelPipeline:

* ServerBootStrap注册一个ChannelInitializer实例

* 当ChannelInitializer.initChannel()被调用时,ChannelInitializer在管道里安装一个ChannelHandlers集合

* ChannelInitializer从ChannelPipeline移除自己


3.2.3 A Closer look at ChannelHandlers

经常使用的adapter

* ChannelHandlerAdapter

*ChannelInboundHandlerAdapter

*ChannelOutboundHandlerAdapter

*ChannelDuplexHandlerAdapter


3.2.4 Encoders and decoders

网络数据总是一些列字节。所以出站数据要转化为字节,入站数据要从字节转化为需要的格式。


3.2.5 Abstract class SimpleChannelInboundHandler


3.3 Bootstrapping

Netty's bootstrap提供了一个网络层的配置容器。

分为客户端Bootstrapping和服务端Bootstrapping



3.4 Summary

0 0
原创粉丝点击