Netty系列之入门

Netty介绍

 找个比较官方的介绍

Netty 是由 JBOSS 提供的一个 Java 开源框架。 Netty 提供异步的、基于事件驱动的网络应用程序框 架,用以快速开发高性能、高可靠性的网络 IO 程序。 Netty 是一个基于 NIO 的网络编程框架,使用 Netty 可以帮助你快速、简单的开发出一 个网络应用,相当于简化和流程化了 NIO 的开发过程。作为 当前最流行的 NIO 框架, Netty 在互联网领域、大数据分布式计算领域、游戏行业、 通信行业等获得了广泛的应用,知名的 Elasticsearch Dubbo 框架内部都采用了 Netty

架构图 

从图中我们能看到,Netty内部支持的协议、功能还是非常丰富的,零拷贝、可扩展时间模型,支持TCP、UDP等协议,还提供了安全传输、压缩等等的辅助功能

优势

1. 设计优雅,提供阻塞和非阻塞的 Socket;提供灵活可拓展的事件模型;提供高度可定制的线程模型。
2. 具备更高的性能和更大的吞吐量,使用零拷贝技术最小化不必要的内存复制,减少资源的消耗。
3. 提供安全传输特性。
4. 支持多种主流协议;预置多种编解码功能,支持用户开发私有协议。

线程模型 

目前存在的线程模型主要是两个

1、传统阻塞IO服务模型

概念:采用的是阻塞IO模式获取输入的数据,每个连接都需要对应的线程来完成数据处理

模型图:

存在的问题:

  • 当并发数很大,就会创建大量线程,不过请求是不是有效的,都会占用很大的资源
  • 连接创建后,如果当前线程处理的是读取数据,但对应的数据是空,那这个读操作就会一直阻塞,会造成资源浪费 

2、Reactor模型

概念通过一个或者多个输入同时传递给服务处理器的模式,接收到多个请求时,会将这些请求同步分派到对应的线程进行处理

根据Reactor的数量和处理资源池线程的数量不同,又分为三种实现

  • 单Reactor单线程
  • 单Reactor多线程
  • 主从Reactor多线程

 Netty是基于主从Reactor多线程模式,然后再其基础上做了一些改进

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值