zoukankan      html  css  js  c++  java
  • netty学习心得1

    也不是系统学习,工作需求,一点点抠的,需要自己笼统学习下。

    首先功能实现:

    serverBootstrap.group(boss, work).channel(NioServerSocketChannel.class)
    .option(ChannelOption.SO_BACKLOG, nettyConfig.getBacklog())
    .option(ChannelOption.SO_KEEPALIVE, true)
    .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
    // .option(ChannelOption.RCVBUF_ALLOCATOR, AdaptiveRecvByteBufAllocator.DEFAULT)
    .childOption(ChannelOption.SO_KEEPALIVE, nettyConfig.isKeepalive())
    .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)
    这几个option里对于ALLOCATOR还比较模糊,看了半天资料也没太明白,周末有时间还需要细看
    今晚明白了;
    NioServerSocketChannel是用于服务端的,
    NioSocketChannel用于client的,
    对于ALLOCATOR的四种pool需要更加了解,对于高并发优化,主要是依靠这个参数以及RCVBUF_ALLOCATOR;
    另在read方法中读完,需要把buffer给clear不然高并发下会发生内存泄漏问题。


    粘包问题:基于包长的分包:
    LengthFieldBasedFrameDecoder

    也可基于关键字分包:
    DelimiterBasedFrameDecoder
    还有其他分包,再写,目前工作中遇到的是这两种,用netty时,就要做好分包,因为高并发下,粘包是必然发生的事情,虽然频率待定,但是必定发生

    https://blog.csdn.net/tjf1314520/article/details/60773991

    这是一个自定义decode的时候的分配buffer大小问题

    主要是调用ByteBuf heapBuffer = ctx.alloc().heapBuffer(); 的时候给它分配大小。ByteBuf heapBuffer = ctx.alloc().heapBuffer(readableBytes);

    https://blog.csdn.net/a975261294/article/details/80535343

  • 相关阅读:
    POC- Proof of Cocept -- 概念验证
    英语语法学习 7 -- 数词
    英语语法学习6 -- 代词
    英语语法学习5-冠词
    英语语法学习4-名词
    英语语法学习3-句子的组成和分类
    alibaba-Java开发手册心得-一编程规约-4oop(面向对象编程)规约
    alibaba-Java开发手册心得-一编程规约-3代码格式
    alibaba-Java开发手册心得-一编程规约-2常量定义
    魔法值的简单了解
  • 原文地址:https://www.cnblogs.com/heroinss/p/9757013.html
Copyright © 2011-2022 走看看