网站心跳监控源码分享(http 心跳)

很多朋友对于网站心跳监控源码分享和http 心跳不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

NacosClient会维护一个定时任务通过持续调用服务端的接口更新心跳时间,保证自己处于存活状态,防止服务端将服务剔除,Nacos默认5秒向服务端发送一次,通过请求服务端接口/instance/beat发送心跳。客户端服务在注册服务的时候会增加一个心跳的任务,如下图所示:

首先看下BeatInfo这个类,重点看标注的字段,该字段是给周期任务设定时间,如下图:

该方法内部定义的一个DEFAULT_HEART_BEAT_INTERVAL的常量,设定5秒:

接下来我们看下addBeatInfo方法,该方法内部主要是将BeatTask任务加入到线程池ScheduledExecutorService当中,如下图:

重点部分就是看BeatTask,BeatTask继承Runnable,run方法就是我们的重点,该方法调用了NamingProxy的sendBeat方法,服务端请求地址为/instance/beat的方法

接下来我们把目光放到服务端,找到InstanceController的beat方法,如果是参数beat信息的话,说明是第一次发起心跳,则会带有服务实例信息,因为发起心跳成功则服务端会返回下次不要带beat信息的参数,这样客户端第二次就不会携带beat信息了。如果发现没有该服务,又没带beat信息,说明这个服务可能被移除过了,直接返回没找到。如果没有服务,但是发现有beat信息,那就从beat中获取服务实例信息,进行注册,整体执行流程如下图:

OK,关于网站心跳监控源码分享和http 心跳的内容到此结束了,希望对大家有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平