Netty初识

Netty是一个异步的、基于事件驱动的网络应用框架,它提供了异步的、事件驱动的网络应用程序框架和工具。由JBoss所提供支持的java开源网络编程框架

同步:发送方发送请求后,需要接收方响应请求,在接收方工作未处理完前,发送方需要一直等待,此时发送方肯定也接收不到结果。

异步:发送方发送请求后,接收方接收后立即返回响应给接收方。此时,发送发已知晓请求被接收方收到,但很可能没有结果。不过发送方并不在意,可以继续完成自己的任务,返回结果会通过事件回调来获取

阻塞:发送方发送一个请求后,一直等待接收方返回一个结果。此期间发送方一直处于挂起状态,直到发送方收到来自接收方的返回结果

非阻塞:发送方发送一个请求,但不用一直等待接收方的响应结果,可以先执行后续步骤

同步异步这组概念主要描述‘请求-响应’的模式,而阻塞和非阻塞主要用于描述返回结果的方式。

伪异步IO模式:在服务器端控制线程的数量来灵活有效地调配系统线程资源。服务器端通过一个任务处理模块Task(主要通过JDK的Runnable接口来实现)来处理这些客户端连接,Task负责将这些请求连接放入一个线程池来处理,线程池维护着一个消息队列和最大数量为M的活跃线程组。 底层仍采用的是同步阻塞模式

JDK1.4的NIO:not-blocking IO 即为同步非阻塞IO的通信模式。包括了三大核心组件:通道Channal、轮询器Selector和Buffer缓冲区。传统BIO是基于流实现的,而NIO是基于通道和缓冲区实现的。关键在于Selector:用于监视全部IO通道的状态,一个请求到达Selector后,当其中任意一个或多个通道具有可用IO时,该Selector会返回一个大于0的数,即表示了多少个可用的IO通道

JDK1.7的AIO:Async IO 即为异步非阻塞IO。AIO模式下没有Selector,而是在服务器端的IO操作完成后,再给线程发出通知的(通过异步回调事件机制)。回调操作是在等待IO操作完成后由系统自动触发的。

Netty对Java NIO API进行了高效的封装,提供了对TCP、UDP和文件传输的良好支持,尤其适用于互连网中的大数据和分布式的应用开发。Netty主要有以下优点:

高并发:Netty自身具有吞吐量大、延迟时间短、传输速度快和资源消耗低的高并发处理性能

封装好:Netty很好的封装了JavaNIO的各种细节,尤其是针对阻塞和非阻塞进行了优化,提供了简单易用的API

安全性:Netty提供了完整的ssl/tls和startTLS支持

文档丰富:便于开发人员学习

社区支持:时常更新迭代,技术人员活跃

Netty框架模块
在这里插入图片描述

主要分为3个模块:核心模块、传输服务、协议支持

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值