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的处理逻辑:

基于OIO的处理逻辑:

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

Channel 聚合了 ChannelPipeline 跟 ChannelConfig。

Channel 提供了 :

pipeline() 获取ChannelPipeline 实例

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


Netty有四种数据传输方式:

NIO    : 使用Java.nio 实现。

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

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

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

在不同场景下使用策略

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

NIO :  高并发场景

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

Embedded   : 进行测试环境。

转载于:https://my.oschina.net/XzhiF/blog/263476

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值