一种心跳,两种设计

1 前言

在前一篇文章 《聊聊 TCP 长连接和心跳那些事》 中,我们已经聊过了 TCP 中的 KeepAlive,以及在应用层设计心跳的意义,但却对长连接心跳的设计方案没有做详细地介绍。事实上,设计一个好的心跳机制并不是一件容易的事,就我所熟知的几个 RPC 框架,它们的心跳机制可以说大相径庭,这篇文章我将探讨一下 ** 如何设计一个优雅的心跳机制,主要从 Dubbo 的现有方案以及一个改进方案来做分析 **。


聊聊 TCP 长连接和心跳那些事

前言

可能很多 Java 程序员对 TCP 的理解只有一个三次握手,四次握手的认识,我觉得这样的原因主要在于 TCP 协议本身稍微有点抽象(相比较于应用层的 HTTP 协议);其次,非框架开发者不太需要接触到 TCP 的一些细节。其实我个人对 TCP 的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳问题,做一个统一的整理。

在 Java 中,使用 TCP 通信,大概率会涉及到 Socket、Netty,本文将借用它们的一些 API 和设置参数来辅助介绍。


Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×