![](https://img-blog.csdnimg.cn/20190328142537369.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
netty
入门及原理讲解
好马行千里
这个作者很懒,什么都没留下…
展开
-
1.Netty之IO浅析
传统Socket 同步阻塞服务端:采用while(true)方式,每个连接分配单独的线程的模型,之所以使用多线程是因为该模型同步阻塞的,当一个连接在处理I/O的时候,后续的请求是阻塞的。如果是单线程的话必然就挂死在那里,后续的请求无法进入;于是优化采取每个请求新建一个线程去处理。稍微好点的是直接用线程池去接收请求,来减小线程池生命周期的开销。这个模型最本质的问题在于,严重依赖于线程。但...原创 2018-04-23 15:46:56 · 228 阅读 · 0 评论 -
2.Netty之IO分析小结
java1.4之前,java对IO支持并不完善,面对高性能网络吞吐的系统时,会面临巨大的困难。NIO(new IO)的区别主要有以下几点。Buffer Channel Selector NIO引入了Charset类统一对字符集转换高并发下发生的性能问题:服务端处理缓慢,返回应答耗时 若读取故障节点的响应,读取输入流是阻塞的,客户端线程也会阻塞 若所有的线程读取到了故障服务器...原创 2018-09-27 17:36:08 · 164 阅读 · 0 评论 -
3.Netty之一个基于NIO的服务端
看了一下《Java NIO》这本书,然后尝试着写了一个服务端demopackage com.bj58.pn.nio;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import ...原创 2018-04-07 13:59:10 · 275 阅读 · 0 评论 -
4.Netty之概述理解
我们先拿知乎的一个回答来描述一下Netty。我对Netty的理解,简而言之,Netty是目前Java语言领域最优秀的网络解决方案。1.为什么要学习netty?NIO的编写非常的复杂,并且容易出错,还有可能导致CPU使用率100%的epoll的bug,那么这时候就需要引入一个NIO框架。Netty了两个技术:Callbacks(回调)和Futures(结果抽象),这是Netty设...原创 2018-04-23 16:40:19 · 193 阅读 · 0 评论 -
5.Netty之TCP拆包粘包
TCP网络传输之拆包粘包。产生原因熟悉tcp的都知道内部有个滑动窗口协议,分组以及限流。 数据包大于缓冲区 MSS大小的TCP分段 以太网payload大于MTU进行IP分片解决方案fixed length split head body ect......原创 2019-05-04 23:17:09 · 155 阅读 · 0 评论 -
6.Netty之序列化反序列化
Java序列化目的:网络传输 对象持久化原生Java序列化缺点不支持跨语言 码流太大性能低推荐其他ProtoBuf Thrift Marshalling Kyro MessagePack原创 2019-05-04 23:24:07 · 297 阅读 · 0 评论