一文读懂Netty的核心构成块

底层原理源码是开发者进阶架构师必经之路,今天来看看Netty的核心构成块都是什么。

1、Channel

在java NIO就有这个,其实就是java NIO的基本构造。他代表到一个实体(比如一个硬件,一个文件等)

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

2、Callback(回调)

可以从名称中来进行理解,回调就是一个方法,一个指向已经被提供给另一个方法的引用,比如在一个操作完成后需要通知相关信息常用方式之一

Netty在内部使用了回调来处理事件;当一个回调被触发时,相关的事件被interface-ChannnelHandler的实现处理。

3、Future

该类提供了进入异步任务时,可以通过该类将在未来的某个时刻完成的任务,并提供对其结果的访问

JDK中预置了该类interface java.util.concurrent.Future,但是所提供的实现,只允许手动检查对应操作是否完成,或者一直阻塞直到异步任务结束获取到结果,这么索呢?就是非常繁琐,所以Netty提供了对它的实现ChannelFuture,用于在执行异步操作的时候使用ChannelFuture提供了几个额外的方法,这些方法可以使我们能够注册多个ChannelFutureListener实例,监听器回调方法为:operationComplete(),将会在对应的操作完成时被调用,然后监听器可以判断该操作是否完成还是出错了,如果出错了还可以检索产生的Throwable,简单来说:由ChannelFureListener提供的通知机制消除了手动检查对应的操作是否完成的必要,每个Netty的传出都返回一个ChannelFuture,反之可得,传入都不会阻塞,证实Netty是完全基于异步和事件驱动。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值