《Netty实战4.1.16》

第一部分–第一章:

使用Selector 的非阻塞I/O
总体来看,与阻塞I/O 模型相比,这种模型提供了更好的资源管理:

a、使用较少的线程便可以处理许多连接,因此也减少了内存管理和上下文切换所带来开销;

b、当没有I/O 操作需要处理的时候,线程也可以被用于其他任务。尽管已经有许多直接使用Java NIO API 的应用程序被构建了,但是要做到如此正确和安全并不容易。特别是,在高负载下可靠和高效地处理和调度I/O 操作是一项繁琐而且容易出错的任务,最好留给高性能的网络编程专家——Netty。

异步和可伸缩性之间的联系又是什么呢?

1.非阻塞网络调用使得我们可以不必等待一个操作的完成。完全异步的I/O 正是基于这个特性构建的,并且更进一步:异步方法会立即返回,并且在它完成时,会直接或者在稍后的某个时间点通知用户。

2.选择器使得我们能够通过较少的线程便可监视许多连接上的事件。

Netty 的核心组件:

1.Channel;

Channel 是Java NIO 的一个基本构造。

    它代表一个到实体(如一个硬件设备、一个文件、一个网络套接字或者一个能够执行一个或者多个不同的I/O操作的程序组件)的开放连接,如读操作和写操作。

目前,可以把Channel 看作是传入(入站)或者传出(出站)数据的载体。因此,它可以被打开或者被关闭,连接或者断开连接。

2.回调;

    一个回调其实就是一个方法,一个指向已经被提供给另外一个方法的方法的引用。这使得后者可以在适当的时候调用前者。回调在广泛的编程场景中都有应用,而且也是在操作完成后通知相关方最常见的方式之一。

   Netty 在内部使用了回调来处理事件;当一个回调被触发时,相关的事件可以被一个interfaceChannelHandler 的实现处理。当一个新的连接已经被建立时,ChannelHandler 的channelActive()回调方法将会被调用,并将打印出一条信息。

3.Future;

4.事件和ChannelHandler。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值