之前已经写过一篇超简单的文章,本篇我们继续来看一下关于Netty必须知道的内容。
问题【1】默认情况 Netty 起多少线程?何时启动?
Netty 默认是 CPU 处理器数的两倍,bind 完之后启动。
问题【2】Netty 发送消息有几种方式?
Netty 有两种发送消息的方式:
直接写入 Channel 中,消息从 ChannelPipeline 当中尾部开始移动; 写入和 ChannelHandler 绑定的 ChannelHandlerContext 中,消息从 ChannelPipeline 中的下一个 ChannelHandler 中移动。
问题【3】Netty 中的重要组件ChannelPipeline是干什么的呢?
为 ChannelHandler 链提供了容器,当 channel 创建时,就会被自动分配到它专属的 ChannelPipeline,这个关联是永久性的。
问题【4】Netty 中的重要组件ChannelHandler主要用于什么?
充当了所有处理入站和出站数据的逻辑容器。ChannelHandler 主要用来处理各种事件,这里的事件很广泛,比如可以是连接、数据接收、异常、数据转换等。
问题【5】Netty 中的重要组件ChannelFuture具体是指?
Netty 框架中所有的 I/O 操作都为异步的,因此我们需要 ChannelFuture 的 addListener()注册一个 ChannelFutureListener 监听事件,当操作执行成功或者失败时,监听就会自动触发返回结果。
问题【6】Netty 中的重要组件ChannelFuture用于什么?
主要是配合 Channel 处理 I/O 操作,用来处理连接的生命周期中所发生的事情。
问题【7】Netty 中的重要组件Channel包含什么?
Channel:Netty 网络操作抽象类,它除了包括基本的 I/O 操作,如 bind、connect、read、write 等。