2024-04-04
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://www.skjava.com/mianshi/baodian/detail/1035758705

回答

  • BootstrapServerBootstrap:引导类,用于配置整个 Netty 程序,串联各个组件,将这些组件串连为一个可运行的完整的程序。Bootstrap 用于客户端,ServerBootstrap 用于服务端。
  • Channel:通道。Netty 网络通信的核心组件,它代表了一个打开的连接。当客户端与服务端建立连接后,服务端会为客户端新建一个代表它的 Channel。
  • EventLoop:事件循环。是 Netty Reactor 线程模型的核心处理引擎,负责处理 Channel 的 I/O 操作。当服务端为某个客户端新建 Channel 后,为将 Channel 与一个 EventLoop 进行绑定,在这个 Channel 的生命周期内,它的所有事件和任务都由与之绑定的 EventLoop 执行。注意,EventLoop 是一个单线程执行器,这样可以避免线程安全的问题。
  • ChannelHandler:处理器,Netty 处理业务的核心逻辑所在,用于处理入站和出站事件。
  • ChannelPipeline:Netty 的核心处理链,用于实现网络事件的动态编排和有序传播。它的主要作用是管理和执行 ChannelHandler,确保它们按照正确的顺序和方式进行事件处理。
  • ByteBuf:数据缓冲区,Netty 的数据容器。

Netty 中的 BootStrap 有什么作用?

Java NIO 中有一个 Channel 了,为什么 Netty 还重新设计一个?

Netty 中的 ByteBuf 是什么,它和 Java NIO 的 ByteBuffer 有什么区别?

EventloopGroup 和 EventLoop了解么?他们两者的关系是什么?

NioEventLoopGroup 默认的构造函数会起多少线程?

Netty 的 Channel 和 EventLoop 之间的关系是什么?

什么是 Netty 的 ChannelPipeline,它是如何工作的?

阅读全文