【校招VIP】java开源框架之netty

153 阅读5分钟

考点介绍:

Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。Netty是基于Nio的,封装了jdk的Nio,使用起来更加方法灵活。

本期分享的java开源框架之netty,分为试题、文章以及视频三部分。

答案详情解析和文章内容点击下方链接即可查看!

一、考点题目

1.什么Netty?Netty 的特点是什么?

解答:Netty 是一款基于 NIO(Nonblocking I/O,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高。难能可贵的是,在保证快速和易用性的同时,并没有丧失可维护性和性能等优势。Netty 的特点:高并发:Netty 是一款基于 NIO(Nonblocking IO,非阻塞IO)开发的网络通信框架,对比于 BIO(Blocking I/O,阻塞IO),他的并发性能得到了很大提高……

2.什么是 Netty 的零拷贝?

解答:Netty 的零拷贝主要包含三个方面:Netty 的接收和发送 ByteBuffer 采用 DIRECT BUFFERS,使用堆外直接内存进行 Socket 读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存(HEAP BUFFERS)进行 Socket 读写,JVM 会将堆内存 Buffer 拷贝一份到直接内存中,然后才写入 Socket 中。相比于堆外直接内存,消息在发送过程中多了一次缓冲区的内存拷贝……

3.Netty的应用场景有哪些?

解答:Netty可构建高性能、低延时的各种Java中间件,例如MQ、分布式服务框架、ESB消息总线等,Netty主要作为基础通信框架提供高性能、低子延时的通信服务。分布式服务框架 Dubbo,默认使用 Netty 作为基础通信组 件,还有 RocketMQ 也是使用 Netty 作为通讯的基础……

4.Netty的线程模型知道吗?

解答:Reactor模式是基于事件驱动开发的,核心组成部分包括Reactor和线程池,其中Reactor负责监听和分配事件,线程池负责处理事件,而根据Reactor的数量和线程池的数量,又将Reactor分为三种模型:单线程模型 (单Reactor单线程),多线程模型 (单Reactor多线程),主从多线程模型 (多Reactor多线程)。Netty通过Reactor模型基于多路复用器接收并处理用户请求,内部实现了两个 线程池,boss线程池和work线程池,其中boss线程池的线程负责处理请求的 accept事件,当接收到accept事件的请求时……

5.TCP 粘包/拆包的原因及解决方法?

解答:TCP是以流的方式来处理数据,一个完整的包可能会被TCP拆分成多个包进行发送,也可能把小的封装成一个大的数据包发送。TCP粘包/分包的原因:应用程序写入的字节大小大于套接字发送缓冲区的大小,会发生拆包现象,而应用程序写入数据小于套接字缓冲区大小,网卡将应用多次写入的数据发送到网络 上,这将会发生粘包现象……

(答案点击下方链接查看哦)

二、考点文章

1.【校招VIP】Netty 介绍

Netty 原理,Netty 是一个高性能、异步事件驱动的 NIO 框架,基于 JAVA NIO 提供的 API 实现。它提供了对TCP、UDP 和文件传输的支持,作为一个异步 NIO 框架,Netty 的所有 IO 操作都是异步非阻塞的,通过 Future-Listener 机制,用户可以方便的主动获取或者通过通知机制获得 IO 操作结果。Netty 高性能,在 IO 编程过程中,当需要同时处理多个客户端接入请求时……

2.【校招VIP】Netty实战入门详解——让你彻底记住什么是Netty

Netty 是基于 Java NIO 的异步事件驱动的网络应用框架,使用 Netty 可以快速开发网络应用,Netty 提供了高层次的抽象来简化 TCP 和 UDP 服务器的编程,但是你仍然可以使用底层的 API。Netty 的内部实现是很复杂的,但是 Netty 提供了简单易用的API从网络处理代码中解耦业务逻辑。Netty 是完全基于 NIO 实现的,所以整个 Netty 都是异步的。Netty 是最流行的 NIO 框架,它已经得到成百上千的商业、商用项目验证,许多框架和开源组件的底层 rpc 都是使用的 Netty,如 Dubbo、Elasticsearch 等等。下面是官网给出的一些 Netty 的特性……

3.【校招VIP】Netty介绍及其工作原理

为什么选择Netty,Netty其实就是一个高性能NIO框架,所以它是基于NIO基础上的封装,本质上是提供高性能网络IO通信的功能。由于前面的课程中我们已经详细的对网络通信做了分析,因此在学习Netty时,学习起来应该是更轻松的。Netty提供了上述三种Reactor模型的支持,我们可以通过Netty封装好的API来快速完成不同Reactor模型的开发,这也是为什么大家都选择Netty的原因之一,除此之外,Netty相比于NIO原生API,它有以下特点……

三、考点视频

1.怎么理解forward和redirect?

重定向是需要response将信息返回给浏览器,而请求转发是request对象的行为。1.从地址栏显示来说,forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,所以它的地址栏还是原来的地址。redirect是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL.……

移动端链接:m.xiaozhao.vip/dTopic/deta…

PC端链接:xiaozhao.vip/dTopic/deta…