Netty
Fly_Fly_Zhang
初学java
展开
-
netty-Netty框架简介
概述:netty-网络通信框架库(第三方库),本质是对NIO的封装。netty的实现:我们通过maven来导入netty。在maven的pom.xml中实现对netty的依赖。 <dependencies> <dependency> <groupId>junit</groupId> <artifactId&...原创 2019-06-13 10:45:39 · 592 阅读 · 0 评论 -
netty-Netty线程模型&epoll-bug问题
Proactor&ReactorProactor和Reactor是两种经典的多路复用IO模型,主要用于在高并发,高吞吐量的环境下进行IO处理。IO多路复用机制都依赖于事件分发器,事件分发器将客户事件分发到不同的事件处理器中.Select&poll&epoll在操作系统级别上,select,poll,epoll是三个常用的IO多路复用机制。三者的具体区别与实现请读...原创 2019-06-13 15:43:45 · 1534 阅读 · 0 评论 -
netty-BuyeBuf(数据容器)
概述:java NIO提供了ByteBuffer作为字节容器,但是这个类过于复杂,而且有些繁琐,Netty使用了即易于使用又具备良好性能的ByteBuf来替代ByteBuffer。运作方式:所有的网络通信都涉及字节序列的移动,所以高效易用的数据结构是必不可少的。ByteBuf维护了两个不同的索引:一个用于读取,一个写入。当从ByteBuf读取时,它的readerIndex将会被递增已经读取...原创 2019-06-13 21:23:24 · 356 阅读 · 0 评论 -
网络-TCP网络通信中的粘包&拆包问题以及netty框架中的解决办法
TCP粘包&拆包问题来源TCP是一个流协议,就是没有界限的一串数字。TCP并不关心上层业务数据的具体含义,它只会根据TCP缓冲区的实际情况进行包的划分。因此,在业务上,一个完整的包是可能会被TCP拆分成多个包进行发送的(拆包),也有可能把多个小的包封装成一个大的数据包进行发送(粘包)。TCP粘包&拆包问题图解假设客户端分别发送了两个数据包D1和D2给server,由于ser...原创 2019-06-14 14:54:52 · 1197 阅读 · 5 评论