栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Netty 学习三

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Netty 学习三

Netty的组件

文章目录
  • Netty的组件
  • 一、组件介绍
    • 1.Channel
    • 2.EventLoop
    • 3.ChnnelFuture
    • 4.ChannelHandler和ChannelPipeline
    • 5.编码器和解码器
    • 6.引导
  • 总结


提示:以下是本篇文章正文内容,下面案例可供参考

一、组件介绍 1.Channel

提供基本的I/O操作(bind()、connect()、read()、write()),Netty的Channel降低了Socket的复杂性。
Channel的实现有:

  1. EmbeddedChannel
  2. LocalServerChannel
  3. NioDatagramChannel
  4. NioSctpChannel
  5. NioSocketChannel
2.EventLoop

用于处理连接的生命周期中所发生的事件。Channel、EventLoop、Thread、EventLoopGroup间的关系:

  1. 一个EventLoopGroup包含一个或多个EventLoop
  2. 一个EventLoop在它的生命周期只和一个Thread绑定
  3. 所有有EventLoop处理的I/O事件都将在它专有的Thread上被处理
  4. 一个Channel在一个生命周期只注册于一个EventLoop
  5. 一个EventLoop可能会分配不只一个Channel
3.ChnnelFuture

由于Netty是异步的,一个操作可能不会立即返回,所以提供ChannelFuture的接口通过注册ChannelFutureListener的方式通知某个操作完成(不管这个操作是否成功)

4.ChannelHandler和ChannelPipeline
  • ChannelHandler充当了所有处理入站和出站数据的应用程序逻辑容器,通常数据会流经多个处理器。
  • ChannelPipeline为ChannelHandler链提供了容器,ChannelHandler安装到ChannelPipeline的流程是:
    1.ChannelInitializer实现被注册到ServerBootstrap或BootStrap中
    2.ChannelInitializer.initChannel()方法调用时,在ChannelPipeline中安装ChannelHandler
    3.ChannelInitializer将自己从ChannelPipeline中被移除
5.编码器和解码器

Netty接收和发送消息时,数据会发生转换入站消息会解码,从字节码转换为另一种格式,通常是java对象,出站消息会编码,编码为字节码。

6.引导
  • 基于服务端的引导为ServerBootStrap,绑定到一个端口,监听连接
  • 基于客户端的引导BootStrap连接到远程端点

总结

了解Netty的组件概念及架构体系
`

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976077.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号