![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
netty
weixin_39507514
面试就是在最好的时间内遇到最合适的彼此
展开
-
netty内部原理
1.netty三层架构:应用层(编解码),调度层(职责链),网络层(nio)2.tomcat三层架构:servlet容器,适配层,网络层(connector)3.http:短连接,一个请求一个响应,一个连接。4.拆包 完整的数据,分成多个网络包传输5.粘包:两个不相干的数据合成一个数据包6.自定义编解码不完整 不作处理,缓存起来(长度不够),等待下一个数据过来合并混在一块,处理分割...原创 2019-03-29 10:19:59 · 129 阅读 · 0 评论 -
netty的bytebuf扩容机制
如果要写的数据+writeIndex没有大于64那么就返回64,如果超过了64没有超过4M就返回642,如果超过了642那么就是6422,如果等于4M,那么就返回4M,如果超过了4M,那么就是要写的数据/4*4+4.由wirteIndex,writeIndex,capatity,替代nio的limit,position,capatity....原创 2019-06-25 16:00:03 · 1040 阅读 · 0 评论 -
nio和bio的区别
1.bio:一个client连接由一个socket接收连接信息,并把客户端信息交由一个线程去处理。客户端中的socket的outputStream传递的数据给服务端的inputstream接收,服务端把响应数据通过outputStream返回给客户端的inputstream响应。2.nio:一个client连接由一个chancel接收,每一个uchancel需要通过register注册到sele...原创 2019-06-23 10:25:51 · 269 阅读 · 0 评论 -
nio的单线程模型
1.thread-reactor接收到客户端连接交于acceptor去处理,acceptor给一个客户端产生一个hander处理io读写。原创 2019-06-23 11:49:39 · 308 阅读 · 0 评论 -
TCP和UDP的理解
1.什么是TCP连接?当网络通信采用TCP协议的时候,在真正的读写操作之前,Server与Client之间必须建立一个连接。当读写操作完毕之后,双方不再需要这个连接时,就断开这个连接。连接时是三次握手,断开时则需要四次分手。所以说每个连接都是比较消耗资源的。三次握手:客户端从close状态开启之后(SYN_SEND),发送一个消息(SYN)给服务端,此时服务端时listen状态。服务端接收这...原创 2019-06-19 16:01:18 · 264 阅读 · 0 评论 -
netty池化内存分配
1.计算内存块需要的大小-》计算内存块在缓存池的位置-》是否找到相应的位置-》找到位置则尝试从缓存池中取-》取到则使用queue中拿-》取不到就创建一个与之相近大小的内存,用过之后,放到缓存池。allocate分配内存区域。2.event-loop pool池化中有三个区tiny(16b-512b),small(1kb,4kb),normal(8kb,32kb)3.内存回收:relase() ...原创 2019-06-26 22:58:14 · 762 阅读 · 0 评论 -
netty优化
1.服务器注册到注册中心2.设备通过注册中心分发一个服务器ip3.客服端通过ip建议连接4.订阅主题消息5.redis记录订阅主题6.原创 2019-06-30 22:53:00 · 198 阅读 · 0 评论