SpringBoot整合Netty

本文最后更新于2024.04.23-04:14,某些文章具有时效性,若有错误或已失效,请在下方留言或联系涛哥

前言

Netty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可维护的高并发协议服务器和客户端。

Netty主要基于Java NIO实现,提供了异步和事件驱动的网络编程工具,简化了TCP和UDP服务器的编程。

Netty广泛应用于分布式系统、实时通信、游戏开发等领域,例如,知名的Elasticsearch和Dubbo框架内部都采用了Netty。

Netty吸收了多种协议的实现经验,经过精心设计,能够在保证易于开发的同时,确保应用的性能、稳定性和伸缩性。

Netty的优势

 

使用场景

 

 

Netty的核心组件

  1. Bootstrap,ServerBootstrap:客户端和服务端的启动引导程序
  2. Channel:数据传送的通道,Netty 网络操作抽象类,它除了包括基本的 I/O 操作,如 bind、connect、read、write 等。
  3. ChannelHandler:Channel中有相关事件发生的时候会触发执行,充当了所有处理入站和出站数据的逻辑容器。ChannelHandler 主要用来处理各种事件,这里的事件很广泛,比如可以是连接、数据接收、异常、数据转换等。
  4. ChannelPipeline:为 ChannelHandler 链提供了容器,当 channel 创建时,就会被自动分配到它专属的 ChannelPipeline,这个关联是永久性的。
  5. EventLoop:Io异步执行的任务队列和线程池,主要是配合 Channel 处理 I/O 操作,用来处理连接的生命周期中所发生的事情。
  6. ChannelFuture:Io任务执行以后未来的返回结果。Netty 框架中所有的 I/O 操作都为异步的,因此我们需要 ChannelFuture 的 addListener()注册一个 ChannelFutureListener 监听事件,当操作执行成功或者失败时,监听就会自动触发返回结果。
  7. ChannelHandlerContext:ChannelHandler相关联的上下文信息对象

 

阅读剩余
THE END