我是靠谱客的博主 美丽黑夜,最近开发中收集的这篇文章主要介绍Eureka多级缓存机制,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、缓存存储格式 ConcurrentHashMap<String, Map<String, Lease<InstanceInfo>>>

eureka缓存存储格式

 

二、eureka 服务端缓存

  1. readOnlyCacheHashMap

    ConcurrentHashMap,定时从readWriteCacheMap同步数据,默认30s

  2. readWriteCacheHahMap

    Guava缓存,数据主要同步于存储层。当获取缓存时判断缓存中是否没有数据,如果不存在此数据,则通过 CacheLoader 的 load 方法去加载,加载成功之后将数据放入缓存,同时返回数据。默认180s过期,当服务下线、过期、注册、状态变更,都会来清除此缓存中的数据。

eureka 客户端缓存

  1. eureka Client 启动时会全量拉取服务列表,启动后每隔 30 秒从 Eureka Server 量获取服务列表信息,并保持在本地缓存中。

  2. ribbon 如果使用ribbon负载均衡,ribbon也有30s缓存

缓存工作方式:

多级缓存工作状态

 

优雅停机时默认最长感应时间 30(Ribbon) + 30(client) + 30(readOnlyCacheMap) + 180(readWriteCacheMap) = 270s

最后

以上就是美丽黑夜为你收集整理的Eureka多级缓存机制的全部内容,希望文章能够帮你解决Eureka多级缓存机制所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部