关于netty的一些你需要知道的内容(超简单)

简介: 关于netty的一些你需要知道的内容(超简单)

本篇我们来看一下关于Netty必须知道的内容。


问题【1】Netty是基于Selector对象实现I/O多路复用么?

是的。Netty基于Selector对象实现I/O多路复用,通过 Selector, 一个线程可以监听多个连接的Channel事件, 当向一个Selector中注册Channel 后,Selector 内部的机制就可以自动不断地查询(select) 这些注册的Channel是否有已就绪的I/O事件(例如可读, 可写, 网络连接完成等),这样程序就可以很简单地使用一个线程高效地管理多个 Channel 。


问题【2】在Natty的组件模块中,什么负责主要管理eventLoop的生命周期?

NioEventLoopGroup,主要管理eventLoop的生命周期,可以理解为一个线程池,内部维护了一组线程,每个线程(NioEventLoop)负责处理多个Channel上的事件,而一个Channel只对应于一个线程。


问题【3】初始化并启动Netty服务端的基本过程是什么?

基本过程如下:


1 初始化创建2个NioEventLoopGroup,其中boosGroup用于Accetpt连接建立事件并分发请求, workerGroup用于处理I/O读写事件和业务逻辑


2 基于ServerBootstrap(服务端启动引导类),配置EventLoopGroup、Channel类型,连接参数、配置入站、出站事件handler


3 绑定端口,开始工作


问题【4】Netty中的I/O操作是异步还是同步?

Netty中的I/O操作是异步的,包括bind、write、connect等操作会简单的返回一个ChannelFuture,调用者并不能立刻获得结果,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果。

相关文章
|
9月前
|
网络协议 前端开发 Java
Netty实战(二)第一个Netty程序
这只是一个简单的应用程序,但是**它可以伸缩到支持数千个并发连接**——每秒可以比普通的基于套接字的 Java 应用程序处理多得多的消息。
112 0
|
9月前
|
编解码 前端开发 网络协议
Netty实战(三)Netty的组件和设计
对于 Channel、EventLoop 和 ChannelFuture 类进行的讨论
78 0
|
分布式计算 Dubbo 网络协议
关于netty的一些你需要知道的内容(5)
关于netty的一些你需要知道的内容(5)
|
容器
关于netty的一些你需要知道的内容(2)
关于netty的一些你需要知道的内容(2)
|
编解码 安全 Java
关于netty的一些你需要知道的内容(4)
关于netty的一些你需要知道的内容(4)
关于netty的一些你需要知道的内容(3)
关于netty的一些你需要知道的内容(3)
|
消息中间件 分布式计算 前端开发
03、Netty学习笔记—(Netty组件学习)
03、Netty学习笔记—(Netty组件学习)
03、Netty学习笔记—(Netty组件学习)
|
存储 Java API
03、Netty学习笔记—(Netty组件学习)(一)
03、Netty学习笔记—(Netty组件学习)(一)
03、Netty学习笔记—(Netty组件学习)(一)
|
JSON 缓存 分布式计算
Netty入门 -- 什么是Netty?
Netty入门 -- 什么是Netty?
204 0
Netty入门 -- 什么是Netty?
|
安全 搜索推荐 Java
窥探 Netty 源码!Netty 中的 MpscLinkedQueue 究竟是什么鬼?
该文所涉及的 netty 源码版本为 4.1.6。
321 0