博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Netty组件介绍(转)
阅读量:7223 次
发布时间:2019-06-29

本文共 1149 字,大约阅读时间需要 3 分钟。

http://www.tuicool.com/articles/mEJvYb

为了更好的理解和进一步深入Netty,我们先总体认识一下Netty用到的组件及它们在整个Netty架构中是怎么协调工作的。Netty应用中必不可少的组件:

  • Bootstrap or ServerBootstrap
  • EventLoop
  • EventLoopGroup
  • ChannelPipeline
  • Channel
  • Future or ChannelFuture
  • ChannelInitializer
  • ChannelHandler
Bootstrap,一个Netty应用通常由一个Bootstrap开始,它主要作用是配置整个Netty程序,串联起各个组件。
Handler,为了支持各种协议和处理数据的方式,便诞生了Handler组件。Handler主要用来处理各种事件,这里的事件很广泛,比如可以是连接、数据接收、异常、数据转换等。
ChannelInboundHandler,一个最常用的Handler。这个Handler的作用就是处理接收到数据时的事件,也就是说,我们的业务逻辑一般就是写在这个Handler里面的,ChannelInboundHandler就是用来处理我们的核心业务逻辑。
ChannelInitializer,当一个链接建立时,我们需要知道怎么来接收或者发送数据,当然,我们有各种各样的Handler实现来处理它,那么ChannelInitializer便是用来配置这些Handler,它会提供一个ChannelPipeline,并把Handler加入到ChannelPipeline。
ChannelPipeline,一个Netty应用基于ChannelPipeline机制,这种机制需要依赖于EventLoop和EventLoopGroup,因为它们三个都和事件或者事件处理相关。
EventLoops的目的是为Channel处理IO操作,一个EventLoop可以为多个Channel服务。
EventLoopGroup会包含多个EventLoop。
Channel代表了一个Socket链接,或者其它和IO操作相关的组件,它和EventLoop一起用来参与IO处理。
Future,在Netty中所有的IO操作都是异步的,因此,你不能立刻得知消息是否被正确处理,但是我们可以过一会等它执行完成或者直接注册一个监听,具体的实现就是通过Future和ChannelFutures,他们可以注册一个监听,当操作执行成功或失败时监听会自动触发。总之,所有的操作都会返回一个ChannelFuture。

转载于:https://www.cnblogs.com/guazi/p/6602905.html

你可能感兴趣的文章
我们在编写python代码时应该注意那几件事 !
查看>>
微软工程师认为 Mozilla 也应该拥抱 Chromium
查看>>
论文笔记系列-Neural Architecture Search With Reinforcement Learning
查看>>
使用文本框TextView/EditText的开源库清单
查看>>
通过一个实际例子理解Kubernetes里pod的自动scale - 水平自动伸缩
查看>>
手把手教您将 libreoffice 移植到函数计算平台
查看>>
Ansible批量修改root密码(playbook)
查看>>
c#-WPF string,color,brush之间的转换
查看>>
镁客网每周硬科技领域投融资汇总(10.21-10.27),AI芯片创企Syntiant获英特尔等头部企业投资...
查看>>
惰性计算辨析
查看>>
单据类报表的制作
查看>>
EVCache缓存在 Spring Boot中的实战
查看>>
Kubernetes-架构路线图
查看>>
java类加载时机与过程
查看>>
Win10安装MySQL5.7.22 解压缩版(手动配置)方法
查看>>
ASP.NET CORE系列【四】基于Claim登录授权
查看>>
PostgreSQL checksum
查看>>
Android-来填写一个验证码吧!(二)
查看>>
activit5升到flowable后的全局设置的修改
查看>>
「镁客早报」苹果HomePod音箱国行版明年国内推出,售价2799;一加与英国最大移动运营商EE达成战略合作...
查看>>