Netty-0x05-启动引导
体系梳理
- 就绪
- NioEventLoopGroup和NioEventLoop面向客户端提供了有关任务提交的接口
- 负责对任务的管理,配合任务的属性进行生命的管理
- 随时就绪任务的到来开辟资源,创建线程,启动线程,执行任务
- 在整个线程的运行周期内提供线程阻塞\唤醒机制
- 待定
- 跟Socket编程相关的关联
- 整个框架的启动时机
Bootstrap这个组件就负责解决这两件事情
- 关联的东西就是socket和channel
- C\S模式就要分别关注两端
- bind
- connect
1 AbstractBootstrap
要去思考2个问题
- 为什么需要Cloneable这个基类,它要去clone
- 因为这个组件还承担着启动前引导工作,这个引导工作就是开放给客户端进行Socket相关的配置
- 为了友好深拷贝这些配置项,提供了clone接口
- 为什么要实现Channel这个接口
- 目的不是为了实现Chennel,而是要在组件内部去组合一个Channel实例
- 在Java体系中,对于C\S端有不同的实现,分别是SocketChannel和ServerSocketChannel
- 在Netty体系中,自己单独实现了跟Java同名的Channel
- 为了适配不同的实现,就声明了组合的这个channel都派生自Channel,也就是ServerBootstrap中持有一个ServerSocketChannel的实例,Bootstrap中持有一个SocketChannel的实例
1.1 类图关系
2 重要的接口
2.1 group方法将NioEventLoopGroup组件关联到启动流程
java
1 |
|
2.1.1 server
java
1 |
|
2.2 channel方法将NettyChannel甚至JavaChannel关联到启动流程
java
1 |
|
java
1 |
|
2.3 option方法为将来Socket设置铺垫配置参数
java
1 |
|
2.4 handler以及childHandler方法指定IO数据处理器
java
1 |
|
2.4.1 server端
java
1 |
|
3 点火启动
Netty-0x05-启动引导
https://bannirui.github.io/2023/05/16/Netty-0x05-启动引导/