netty
入门及原理讲解
好马行千里
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
1.Netty之IO浅析
传统Socket 同步阻塞服务端: 采用while(true)方式,每个连接分配单独的线程的模型,之所以使用多线程是因为该模型同步阻塞的,当一个连接在处理I/O的时候,后续的请求是阻塞的。如果是单线程的话必然就挂死在那里,后续的请求无法进入;于是优化采取每个请求新建一个线程去处理。 稍微好点的是直接用线程池去接收请求,来减小线程池生命周期的开销。 这个模型最本质的问题在于,严重依赖于线程。但...原创 2018-04-23 15:46:56 · 317 阅读 · 0 评论 -
2.Netty之IO分析小结
java1.4之前,java对IO支持并不完善,面对高性能网络吞吐的系统时,会面临巨大的困难。 NIO(new IO)的区别主要有以下几点。 Buffer Channel Selector NIO引入了Charset类统一对字符集转换 高并发下发生的性能问题: 服务端处理缓慢,返回应答耗时 若读取故障节点的响应,读取输入流是阻塞的,客户端线程也会阻塞 若所有的线程读取到了故障服务器...原创 2018-09-27 17:36:08 · 207 阅读 · 0 评论 -
3.Netty之一个基于NIO的服务端
看了一下《Java NIO》这本书,然后尝试着写了一个服务端demo package 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 · 330 阅读 · 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 · 235 阅读 · 0 评论 -
5.Netty之TCP拆包粘包
TCP网络传输之拆包粘包。 产生原因 熟悉tcp的都知道内部有个滑动窗口协议,分组以及限流。 数据包大于缓冲区 MSS大小的TCP分段 以太网payload大于MTU进行IP分片 解决方案 fixed length split head body ect... ...原创 2019-05-04 23:17:09 · 206 阅读 · 0 评论 -
6.Netty之序列化反序列化
Java序列化目的: 网络传输 对象持久化 原生Java序列化缺点 不支持跨语言 码流太大性能低 推荐其他 ProtoBuf Thrift Marshalling Kyro MessagePack原创 2019-05-04 23:24:07 · 366 阅读 · 0 评论
分享