Netty简介

一、Netty是什么

Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。

二、Netty概述

2.1 Netty的优点

相对地,Netty的优点有很多:

  • API使用简单,学习成本低。
  • 功能强大,内置了多种解码编码器,支持多种协议。
  • 性能高,对比其他主流的NIO框架,Netty的性能最优。
  • 社区活跃,发现BUG会及时修复,迭代版本周期短,不断加入新的功能。
  • Dubbo、Elasticsearch都采用了Netty,质量得到验证。

2.2 Netty的主要组件

2.2.1 Channel

channel是一个管道,用于连接字节缓冲区Buf和另一端的实体,这个实例可以是Socket,也可以是File, 在Nio网络编程模型中, 服务端和客户端进行IO数据交互(得到彼此推送的信息)的媒介就是Channel。
Channel通过ChannelPipeline中的多个Handler处理器,Channel使用它处理IO数据。

2.2.2 ChannelHandler

ChannelHandler用于处理Channel对应的事件。

2.2.3 ChannelPipeline

ChannelPipeline是一个用于存储ChannelHandler的队列,当一个channel生成时,它进入ChannelPipeline,按顺序通过ChannelHandler,由channelHandler对channel进行处理

2.2.4 EventLoop

EventLoop是netty资源的提供方,当一个Channel生成时会给Channel指定一个EventLoop,之后Channel的一切处理都与EventLoop进行处理,如果把channelHandler比喻成完成一件事的应该怎么做,那么EventLoop就是做这件事的人。

2.2.5 Bootstrap

Bootstrap是netty的引导程序,一个netty服务器启动时会首先执行引导,完成里面对应的配置,如设置EventLoopGroup、Channel等操作。

2.3 Channel的生命周期

状态描述
channelUnregisteredchannel已创建但未注册到一个 EventLoop.
channelRegisteredchannel 注册到一个 EventLoop.
channelActivechannel 变为活跃状态(连接到了远程主机),现在可以接收和发送数据了
channelInactivechannel 处于非活跃状态,没有连接到远程主机
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值