dubbo解析-服务结果缓存(中)

dubbo提供的CacheFactory一共有四个:
ThreadLocalCacheFactory、JCacheFactory、LruCacheFactory、ExpiringCacheFactory,对应的cache属性配置值分别是threadlocal、jcache、lru、expiring。
CacheFactory实现类用于创建对应的Cache对象。比如LruCacheFactory用于创建LruCache对象。Cache对象负责对数据的缓存。
上面提到的四个类共同的基类是AbstractCacheFactory。这个类的主要代码如下:

private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();
@Override
public Cache getCache(URL url, Invocation invocation) {
        url = url.addParameter(METHOD_KEY, invocation.getMethodName());//在url中添加需要访问的远程服务的方法名
        String key = url.toFullString();//相当于远程服务注册到注册中心的url
        Cache cache = caches.get(key);
        if (cache == null) {
            caches.put(key, createCache(url));
            cache = caches.get(key);
        }
        return cache;
    }

caches属性记录了本工厂对象所有的Cache对象,每个远程服务方法对应一个Cache对象。如果caches中不存在Cache对象,调用createCache方法创建Cache对象,比如LruCacheFactory的createCache方法用于创建LruCache。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 理论总结 它要解决什么样的问题? 数据的访问、存取、计算太慢、太不稳定、太消耗资源,同时,这样的操作存在重复性。因...
    jiangmo阅读 3,167评论 0 11
  • 本文出自 “阿敏其人” 简书博客,转载或引用请注明出处。 在上一篇:安卓OOM和Bitmap图片二级缓存机制(一)...
    阿敏其人阅读 3,656评论 2 41
  • 一、Android中的缓存策略 一般来说,缓存策略主要包含缓存的添加、获取和删除这三类操作。如何添加和获取缓存这个...
    王培921223阅读 762评论 0 2
  • LruCache与DiskLruCache 文章目录 一 Lru算法 二 LruCache原理分析2.1 写入缓存...
    Fitz_Lee阅读 521评论 0 1
  • 正文: 作为一个管理者,你的关注点在什么地方那你的员工的关注点也就会在什么地方。 这次培训结束回...
    王敏_阅读 516评论 1 0

友情链接更多精彩内容