Netty笔记(三)数据传输

  Netty良好设计,使用得在实现NIO、OIO的Socket通道中只需要通道切换配置组件完成,而无需为NIO或OIO各自使用自身原始API进行再编写。

例如:

ServerBootstrap bootstrap = new ServerBootstrap();
            bootstrap.group( group )//
                    .channel( NioServerSocketChannel.class )//
绑定了NIO的数据传输通道。

ServerBootstrap bootstrap = new ServerBootstrap();
            bootstrap.group( group )//
                    .channel( OioServerSocketChannel.class )//
则绑定了OIO的数据传输通道。

基于NIO的处理逻辑:

Netty笔记(三)数据传输

基于OIO的处理逻辑:

Netty笔记(三)数据传输

    Netty的数据数据传输实现API来自己到Channel接口。

Netty笔记(三)数据传输

Channel 聚合了 ChannelPipeline 跟 ChannelConfig。

Channel 提供了 :

pipeline() 获取ChannelPipeline 实例

write() 往通道客户端写数据。 此方法线程安全,在多线程环境中使用无须同步。


Netty有四种数据传输方式:

NIO    : 使用Java.nio 实现。

OIO    : 使用java.net 的API实现。

Local   : 用于在不同虚拟机通信(进程间通信)的管道进行通信实现,并且使用nio的实现

Embedded    : 内嵌式的管道实现,很适合用于做单元测试。

在不同场景下使用策略

OIO :  低并发场景(例如1000以下并发), 低延迟场景, 基于阻塞IO的实现。

NIO :  高并发场景

Local : 同一虚拟机,不同进程间通信。

Embedded   : 进行测试环境。

你可能感兴趣的:(Netty笔记(三)数据传输)