RPC框架中,netty的心跳机制作用是什么?

RPC框架中,netty的心跳机制作用是什么?
是用来保证客户端和服务端的连接不被断开吗?
如果是这样,那什么情况下客户端和服务端的连接会被断开而需要用到心跳机制来维持?
是不是我就算不定时发送心跳,我也不手动断开连接,连接就会一直存在?
如果一个连接一直存在,但是这个连接没有做任何读写操作的话,那会不会浪费资源?

  1. 网络问题,断网等等
  2. 服务端挂掉了,客户端啥也不干的话,那么服务端重启的时候,客户端永远感知不到,除非客户端重启。

心跳的主要作用是要确定连接的可用性还有重连机制。没有心跳机制的话,可能这个连接已经失效了,但是你却不知道,等你使用的时候就是异常了,即便是长连接也会遇到断网问题。

心跳机制就是用来检测连接是否正常罢了