网络编程
Java中IO、NIO、Netty相关整理
Wenx408
宝剑锋从磨砺出,梅花香自苦寒来。
展开
-
Java学习笔记17-Netty实战及优化
Java学习笔记17-Netty实战及优化尝试自己实现短连接:请求/响应之后,关闭已经建立的TCP连接,下次请求再建立一次连接。长连接:请求/响应之后,不关闭TCP连接,多次请求,复用同一个连接。为了避免频繁创建连接/释放连接带来的性能损耗,以及消息获取的实时性,采用长连接的形式。粘包:Nagle算法-客户端累积一定量或者缓冲一段时间再传输。服务端缓冲区堆积。导致多个请求数据粘在一起。...原创 2019-11-30 18:10:09 · 372 阅读 · 0 评论 -
Java学习笔记16-Netty缓冲区ByteBuf详解
Java学习笔记16-Netty缓冲区ByteBuf详解Netty自己的ByteBufByteBuf是为解决ByteBuffer的问题和满足网络应用程序开发人员的日常需求而设计的。JDK ByteBuffer的缺点:无法动态扩容:长度是固定的,不能动态扩展和收缩,当数据大于ByteBuffer容量时,会发生索引越界异常。API使用复杂:读写的时候需要手工调用flip()和rewind(...原创 2019-11-26 21:52:59 · 2301 阅读 · 0 评论 -
Java学习笔记15-Netty职责链Pipeline详解
Java学习笔记15-Netty职责链Pipeline详解设计模式-职责链模式职责链模式(Chain of Responsibility Pattern)为请求创建了一个处理对象的链。发起请求和具体处理请求的过程进行解耦:职责链上的处理者负责处理请求,客户只需要将请求发送到职责链上即可,无需关心请求的处理细节和请求传递。请求 --> 职责链调用 --chains–> ...原创 2019-11-25 17:41:48 · 484 阅读 · 0 评论 -
Java学习笔记14-Netty线程模型及源码解析
Java学习笔记14-Netty线程模型及源码解析Netty介绍Netty是一个高性能。高可扩展性的异步事件驱动的网络应用程序框架,它极大地简化了TCP和UDP客户端和服务器开发等网络编程。Netty重要的四个内容:Reactor线程模型:一种高性能的多线程程序设计思路Netty中自己定义的Channel概念:增强版的通道概念ChannelPipeline职责链设计模式:事件处理机制...原创 2019-11-22 23:10:42 · 204 阅读 · 0 评论 -
Java学习笔记13-BIO阻塞、NIO非阻塞网络编程
Java学习笔记13-BIO阻塞、NIO非阻塞网络编程BIO阻塞式BIO 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用是可靠的线性顺序。它的优点就是代码比较简单、直观;缺点就是 IO 的效率和扩展性很低,容易成为应用性能瓶颈。阻塞(blocking)IO:资源不可用时,I...原创 2019-11-20 17:32:00 · 284 阅读 · 0 评论 -
Java学习笔记12-TCP、UDP协议
Java学习笔记12-TCP、UDP协议OSI网络七层模型物理层(光纤)、数据链路层(MAC/LLC)、网络层(IP)、传输层(TCP)、会话层、表示层、应用层低三层物理层:使原始的数据比特流能在物理介质上传输。数据链路层:通过校验、确认和反馈重发等手段,形成稳定的数据链路。(01010101)网络层:进行路由选择和流量控制。(IP协议)传...原创 2019-11-18 18:06:33 · 201 阅读 · 0 评论