1.Eureka注册中心数据结构
一个双层Map--ConcurrentHashMap,外层map的key是serviceId。
内层map的key是服务的实例id。一般host+ serviceId + port,value是服务实例。
ConcurrentHashMap<String, Map> map = new ConcurrentHashMap<>();
HashMap hashMap = new HashMap<>();
hashMap.put("localhost:user-server:9091",new Object());
hashMap.put("localhost:user-server:9092",new Object());
hashMap.put("localhost:user-server:9093",new Object());
map.put("user-server",hashMap);
2.Eureka是如何监控服务状态/Eureka的心跳机制
心跳机制:服务提供者默认30秒会向EurekaServer发起Rest请求。
服务失效:服务默认90秒没有发送心跳包,就会标记为失效服务。
3.eureka客户端各个时间总结
1.心跳间隔时间:30秒
2.服务失效时间:90秒
3.服务拉取时间:30秒
4.eureka服务端各个时间总结
失效剔除:剔除的是失效服务,失效服务指的是90秒服务端没有收到客户端的心跳包。
剔除间隔时间:每隔60秒剔除一次。默认一般不会剔除。
自我保护机制:因为自我保护机制默认是开启的。如果触发了自我保护机制,则失效服务不会剔除。
触发:当服务未按时进行心跳续约时,Eureka会统计服务实例最近15分钟心跳续约的比例是否低于了85%。