作用:
用法:
原理源码:1.服务注册 2.服务续约(由Eureka-client端主动发起,每隔30秒进行一次续约,本质就是修改服务的最后更新时间。将最后更新时间改为系统当前时间加上服务的过期时间。该变量由volatile修饰,给谁可见?要被服务剔除中执行的定时任务可见。
3.服务剔除(每60秒执行一次,当eureka-server发现有的实例没有续约超过一定时间,则将该服务从列表剔除,该项工作由一个定时任务完成的。判断实例过期的条件:
1.系统当前时间>最后更新时间+过期时间+预留时间,其中过期时间默认定义为3个心跳时间,一个心跳时间是30秒,因此过期时间是90秒。直接剔除吗?不不不!仅仅是将实例放入List中,并没有实际剔除。实际剔除前,需要提一下eureka的自我保护机制
:当15分钟内,心跳失败的服务大于85%的比例时,会触发自我保护机制,即不再剔除。有个问题思考一下:eureka-server该如何判断剔除哪些,保留哪些服务呢?:随机算法。)
4.服务下线(需要先发请求给eureka-server,告知自己要下线了。) 5.服务发现(总结三点:1.服务拉取实在项目启动时就有定时任务拉取了 2.服务的实例并不是实时的Eureka-server中的数据,而是一个本地缓存数据 3.缓存更新根据实际需求分为全量拉取和增量拉取)
6.集群信息同步