Netty核心知识点及通过Netty实现的RPC框架对比

1. Netty框架

在这里插入图片描述
如上图左侧所示,首先了解 Netty 的特点。
Netty 是一个高性能的异步事件驱动的 NIO 框架,它对消息的处理采用串行无锁化设计,提供了对 TCP、UDP 和文件传输的支持。
Netty 内置了多种 encoder 和 decoder 实现来解决 TCP 粘包问题。
Netty 处理消息时使用了池化的缓冲池 ByteBufs,提高性能。
结合内存零 copy 机制,减少了对象的创建,降低了 GC 的压力。

1.1 主要概念

需要掌握 Netty 中的一些对象概念。将 Socket 封装成 Channel 对象,在 Channel 读写消息时,使用 ChannelHandler 对消息进行处理,一组 Handler 顺序链接组成 ChannelPipeline 的责任链模式。一个 Channel 产生的所有事件交给一个单线程的 EventLoop 事件处理器来进行串行处理。而 Bootstrap 对象的主要作用是配置整个 Netty 程序串联起各个组件,是一个 Netty 应用的起点。

1.2 零内存复制

要了解 Netty 的内存零 copy 技术。包括使用堆外内存来避免在 Socket 读写时缓冲数据在堆外与堆内进行频繁复制;使用 CompositeByteBuf 来减少多个小的 buffer 合并时产生的内存复制;使用 FileRegion 实现文件传输的零拷贝等。

1.3 粘包与半包

要了解 TCP 协议下粘包与半包

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值