1.4 发送心跳机制
1、 客户端
回到客户端查看,他进行心跳机制的处理
发送心跳后,在finally里面设置延迟5秒执行,这样达到的效果就是每隔5秒执行一次心跳
2、服务端
来到InstanceController类中的beat方法。里面通过参数获取对应的实例,如果没有对应的实例则需要注册,重点我们看他是怎样处理心跳的。
=
服务端怎样处理心跳的,他启动一个线程来处理我们的心跳。
我们查看ClientBeanProcessor的Run方法:
这里我们重点看一下他这里是循环所有的实例,然后设置对应的时间。这里于上面我们处理检查心跳信息的处理对应上了。(可以参考我们画的图)
1.5、查询服务列表
1、客户端
1.1 找出获取服务列表的请求方法
客户端有个请求hostReactor.getServiceInfo获取对应的所有服务实例,
这里启动一个定时任务来定时获取数据,后面们研究Updatetask()的时候我们仔细研究
1.2 分析堆栈信息
这说明我们spring容器刷新容器的时候来获取对应的服务列表
1.3 获取服服务列表
从注册中心中获取对应的数据
1.4 定时任务获取对应的数据
2、服务端
发送请求后调用doSrvIpxt这个核心代码,前面的操作都是一些参数的解析。
返回的一些实例列表,ephemeralInstances 临时实例列表 persistentInstances持久化临时列表