点击箭头处“蓝色字”,关注我们哦!!
心跳机制通过定期向对方发送请求方式用于检测客户端或者服务端是否存活的一种机制,常见的心跳检测有两种:
socket 套接字SO_KEEPALIVE本身带有的心跳机制,定期向对方发送心跳包,对方在收到心跳包后会自动回复;
应用自身实现心跳机制,同样也是使用定期发送请求的方式
Flink中ResourceManager、JobMaster、TaskExecutor三者之间存在相互检测的心跳机制,ResourceManager会主动发送请求探测JobMaster、TaskExecutor是否存活,JobMaster也会主动发送请求探测TaskExecutor是否存活,以便进行任务重启或者失败处理。
Flink中心跳机制主要由以下几个类(接口)协作完成:
HeartbeatTarget接口,表示监控目标,包含两个方法,requestHeartbeat发送心跳请求,receiveHeartbeat接受心跳请求;
HeartbeatManager接口,继承了HeartbeatTarget接口,心跳管理者,用于start/stop 监控对象;
HeartbeatManagerImpl类,实现了HeartbeatManager接口,其内部包含一个实现了Runnable接口的HeartbeatMonitor静态内部类,它包含了心跳目标HeartbeatTarget以及其状态