netty相关

  1. channel分为fileChannel,DatagramChannel(udp通信)、SocketChannel、ServerSocketChannel(TCP通信)

  2. buffer
    ByteBuffer
    MappedByteBuffer
    DirectByteBuffer
    HeapByteBuffer
    ShortBuffer
    IntBuffer
    LongBuffer
    FloatBuffer
    DoubleBuffer
    CharBuffer

  3. 多线程版服务器端socket通信缺点:内存高(一个线程1m内存)、上下文切换成本高、不适合连接数多的场景

  4. 线程池版服务器端socket通信:阻塞模式下,线程仅能处理一个socket连接;仅适合短连接场景。

  5. select版服务器端设计:selector配合一个线程来管理多个channel,获取这些channel上发生的事件,非阻塞模式不会让线程吊死在一个channel上。适合连接数多,但流量低的场景。selector监听到读写事件后,会交由对应的线程去处理。

  6. 四个事件accept、connect、read、write
    accept: server端,收到连接请求时触发
    connect:客户端连接建立后触发
    read:可读事件
    write:可写事件
    serverSocketChannel只关注accept事件
    socketChannel关注可读可写事件

  7. 多线程版服务器端select,每个线程配合一个selector
    boss 负责accecpt,建立连接
    worker负责读写

  8. netty 运行流程在这里插入图片描述在这里插入图片描述

  9. 入站、出站
    数据写入、数据写出
    出站handler,必须要往channel中写入数据才会触发。
    入站是按照加入pipline的顺序,出站是反过来的。

  10. eventloop DefaultEventLoopGroup只处理普通事件,不处理io事件。

  11. channel

  12. future、promise

  13. handler & pipeline

  14. bytebuf

  15. 指定额外的group处理事件,多个handler用不同的eventloopGroup
    在这里插入图片描述16. channelFuture对象addListener

在这里插入图片描述17. 如何关闭channel后执行操作
获取closeFuture
主线程sync或加listener
在这里插入图片描述

  1. netty配置logback
    在这里插入图片描述在这里插入图片描述17. super.channelRead 将当前的handler处理结果传给下一个handler
    在这里插入图片描述

  2. 入栈出站规则在这里插入图片描述在这里插入图片描述

  3. EmbeddedChannel做模拟操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值