刷题+学习NIO(为netty打基础)
【Netty】
- netty是什么(异步/事件驱动/网络编程/NIO框架)
- Netty 应⽤场景(RPC 框架的⽹络通信⼯具/实现⼀个 HTTP 服务器/即时通讯系统/消息推送系统)
- BIO(传统IO,java.io/阻塞IO)
- NIO(buffer/channel/selector)
- Netty 核⼼组件有哪些?分别有什么作⽤?
netty核心组件:
1.Channel
Channel接口是Netty对网络操作抽象类,它除了包括基本的I/0操作,如bind()、connect()、read()、write()等。比较常用的Channel接口实现类是NioServerSocketChannel(服务端)和NioSocketChannel(客户端),这两个Channel可以和BI0编程模型中的ServerSocket以及Socket两个概念对应上。Netty的Channel接口所提供的API,大大地降低了直接使用Socket类的复杂性。
2.EventLoop(聚合了selector选择器)
EventLoop(事件循环)接口,EventLoop定义了Netty的核心抽象,用于处理连接的生命周期中所发生的事件。
EventLoop的主要作用实际就是负责监听网络事件并调用事件处理器进行相关I/0操作的处理。
那Channel和EventLoop直接有啥联系呢?
Channel为Netty 网络操作(读写等操作)抽象类,EventLoop负责处理注册到其上的Channel
处理I/0操作,两者配合参与I/0操作。