Eureka三级缓存
2021-07-13 本文已影响0人
lenny611
缓存机制
Eureka Server存在三个变量:(registry、readWriteCacheMap、readOnlyCacheMap)保存服务注册信息,默认情况下定时任务每30s将readWriteCacheMap同步至readOnlyCacheMap,每60s清理超过90s未续约的节点,Eureka Client每30s从readOnlyCacheMap更新服务注册信息,而UI则从registry更新服务注册信息。
image.png
三级缓存读取顺序:
默认读取只读map,如果只读map没有,则读取读写map,如果读写map也没有,就读取registry本地注册表缓存。
数据同步
通过eureka.server.response-cache-update-interval-ms
参数来设置,如果不设置,默认是30秒(每 30s 从二级缓存向三级缓存同步数据),如下图:
结论:在接受客户端注册的时候,服务端会将读写缓存的key清掉,30s后只读缓存从读写缓存拉取数据的时候,该服务列表获取到的是最新的数据。如果客户端下线,同样地,读写缓存也会被清除掉。所以极端情况,最长30s后,客户端才能获取到最新的服务列表。
参考连接:
https://www.cnblogs.com/shihaiming/p/11590748.html