随笔分类 - netty
摘要:Reactor线程模型分为单线程模型,多线程模型,主从线程模型 netty线程模型一般采用Reactor主从线程模型 EventLoopGroup表示线程池,EventLoop表示线程,channel表示客户端和服务端的连接通道 EventLoopGroup包含EventLoop,一个EventLo
阅读全文
摘要:粘包、拆包发生原因 (1)socket缓冲区与滑动窗口 先明确一个概念:每个TCP socket在内核中都有一个发送缓冲区(SO_SNDBUF )和一个接收缓冲区(SO_RCVBUF),TCP的全双工的工作模式以及TCP的滑动窗口便是依赖于这两个独立的buffer以及此buffer的填充状态。SO_
阅读全文
摘要:线程模型 1 串行工作者模型 存在的缺点,可能由于任务处理的太慢,导致队列积压的任务数量越来愈大,任务不能得到及时的执行 2 并行工作者模型 2.1 存在公共任务队列 存在的缺点,多个worker线程从公共的任务队列中获取任务,必须要加锁,影响效率 2.2 不存在公共任务队列 每个worker线程维
阅读全文
摘要:netty是jboss公司开发的,基于异步的、事件驱动的网络应用程序框架,快速开发高性能、高可靠性的服务器和客户端程序
阅读全文
摘要:在BIO编程中,每一个客户端连接请求过来,对于输入流,必须有单独的线程监听,看是否有数据到达,对于输出流,可以采用一个线程池管理,这样服务端的线程数量至少为n 下面例子是NIO中采用Channel+线程池方式,有个缺点是不知道SocketChannel是否有数据到达了,必须迭代所有的SocketCh
阅读全文
摘要:ByteBuffer的三个属性 limit:所有对Buffer读写操作都会以limit变量的值作为上限。 position:代表对缓冲区进行读写时,当前游标的位置。 capacity:代表缓冲区的最大容量(一般新建一个缓冲区的时候,limit的值和capacity的值默认是相等的) 向ByteBuf
阅读全文
摘要:ByteBuffer 的三个属性 position limit capacity buffer的一般使用过程 // 1.分配空间// 2.写入数据到Buffer// 3.调用filp()方法// 4.从Buffer中读取数据// 5.调用clear()方法或者compact()方法 flip是将po
阅读全文

浙公网安备 33010602011771号