美文网首页
Netty笔记

Netty笔记

作者: 我是电饭煲 | 来源:发表于2020-03-30 19:43 被阅读0次

    同步/异步/阻塞/非阻塞/BIO/NIO/AIO

    https://www.jianshu.com/p/331ee864bda9
    https://zhuanlan.zhihu.com/p/66148226

    Netty面试题(含解答)

    https://www.cnblogs.com/xiaoyangjia/p/11526197.html

    Netty解决TCP粘包问题的方案

    • 消息定长
    • 将消息分为消息头和消息体
    • 包尾添加特殊分隔符

    网络IO模型

    阻塞IO(bloking IO)
    非阻塞IO(non-blocking IO)
    多路复用IO(multiplexing IO)
    信号驱动式IO(signal-driven IO)
    异步IO(asynchronous IO)
    

    https://www.jianshu.com/p/a95bcb116765

    Netty内存种类

    • DirectByteBuffer
    • HeapByteBuffer

    Netty的内存池是怎么实现的?

    Netty对象池怎么实现的?

    select. poll. epoll的机制及其区别?

    https://www.cnblogs.com/aspirant/p/9166944.html

    这可能是目前最透彻的Netty原理架构解析(面试重点资料)

    https://juejin.im/post/5be00763e51d453d4a5cf289

    Netty服务端架构

    image.png

    Netty的线程模型是怎么样的?

    • 主从Reactor多线程模型

    Netty的零拷贝提体现在哪里?

    • 堆外直接内存进行Socket读写,不需要进行字节缓冲区的二次拷贝。如果使用传统的堆内存(HEAP BUFFERS)进行Socket读写,JVM会将堆内存Buffer拷贝一份到直接内存中,然后才写入Socket中。
    • Netty提供了组合Buffer对象。避免了传统通过内存拷贝的方式将几个小Buffer合并成一个大的Buffer。

    Netty缓存种类

    • DirectByteBuffer
    优点:0拷贝
    缺点:
    
    • HeapByteBuffer

    Netty服务端、客户端流程图

    https://blog.csdn.net/qq_28165595/article/details/84718028

    Netty设计模式

    • 构造器模式
    ServerBootstrap 和 Bootstrap 的构建
    
    • 责任链设计模式
    pipeline 上事件的传播
    
    • Reactor 模式的使用
    Netty 底层事件的收发机制是多线程的 Reactor 模式的应用。
    
    • 对象池
    对线程池的应用,ByteBuf内存池
    

    打印netty日志

            InternalLoggerFactory.setDefaultFactory(Slf4JLoggerFactory.INSTANCE);
            pipeline.addLast(new LoggingHandler(LogLevel.INFO));
    

    对netty 类说明

    https://juejin.im/entry/5b6bd6b45188251b1e1ff88b

    Java架构师培训-基于Netty手写Dubbo框架(70分钟后讲netty)

    https://www.bilibili.com/video/av49089458/

    10架构师经验大牛 ------ 基于Netty实现高性能弹幕系统(netty原理、编码、解码、包解析)

    https://www.bilibili.com/video/av59320920?p=4

    RPC历史

    image.png

    netty底层

    • netty封装了bio、nio

    bio流程图

    image.png

    nio流程图

    • single thread


      image.png
    • nio-reactor模式 (线程池)
    1. 由一个专门的线程池来处理所有的 IO 事件,并负责分发。
    1. 事件驱动机制:事件到的时候触发,而不是同步的去监视事件。
    2. 线程通讯:线程之间通过 wait,notify 等方式通讯。保证每次上下文切换都是有意义的。减少无谓的线程切换。
    image.png

    bio、nio、多路复用图解

    https://www.jianshu.com/p/b9f3f6a16911

    马士兵IO模型与Netty

    https://www.bilibili.com/video/av53759412?from=search&seid=3281228927951567357

    官方文档demo

    https://netty.io/wiki/index.html

    netty中文教程

    https://waylau.com/netty-4-user-guide/Getting%20Started/Shutting%20Down%20Your%20Application.html

    netty视频教程,讲得清楚

    https://www.bilibili.com/video/av39500382/?p=2

    netty 代码原理

    netty w3school教程

    https://www.w3cschool.cn/essential_netty_in_action/essential_netty_in_action-2rto28cd.html

    netty websocket demo

    https://netty.io/wiki/

    netty源码剖析

    https://www.bilibili.com/video/av76227904?from=search&seid=3281228927951567357

    相关文章

      网友评论

          本文标题:Netty笔记

          本文链接:https://www.haomeiwen.com/subject/fnrzeqtx.html