
Netty
多情码农无情码
代码不只是代码,更是人类追求的艺术。
展开
-
Netty解决粘包和拆包问题的四种方案
在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常用的解决方案,最后会对Netty提供的几种解决方案进行讲解。这里说明一下,由于oschina将“jie m...转载 2019-06-09 23:44:32 · 1797 阅读 · 0 评论 -
NIO高性能网络编程技术
一、NIO的概述JDK 1.4中的java.nio.*包中引入新的Java I/O库,其目的是提高速度。实际上,“旧”的I/O包已经使用NIO重新实现过,即使我们不显式的使用NIO编程,也能从中受益。nio翻译成 no-blocking io 或者 new io 都无所谓啦,都说得通~在《Java编程思想》读到**“即使我们不显式的使用NIO编程,也能从中受益”的时候,我是挺在意的,所以...转载 2019-07-25 21:27:47 · 440 阅读 · 1 评论 -
Java长连接的心跳及重连设计TCP 协议实现(keepalive 机制)
由于在长连接的场景下,客户端和服务端并不是一直处于通信状态,如果双方长期没有沟通则双方都不清楚对方目前的状态;所以需要发送一段很小的报文告诉对方“我还活着”。同时还有另外几个目的:服务端检测到某个客户端迟迟没有心跳过来可以主动关闭通道,让它下线。 客户端检测到某个服务端迟迟没有响应心跳也能重连获取一个新的连接。正好借着在 cim有这样两个需求来聊一聊。心跳实现方式心跳其实有两种...转载 2019-07-25 22:35:55 · 5760 阅读 · 1 评论