Ehcache分布式缓存的实现

      近几日晚上闲来无事,研究了一下Ehcache的分布式缓存的实现。发现我看到的这一个版本是通过RMI实现的,

同时RMI的实现方式也是直接集成在Ehcache的jar包里面的。此外Ehcache还提供了JMS,jgroup的实现方式。本文

只简单讨论一下rmi实现方式。

      闲言少叙,先上图,大概描述一下几个主要的类的关系。(公司里面从来不用UML,所以本人第一次画这种UML,肯定画得不好,忘大家多对指教。接口都略去了,只保留了实现类,这样理解起来更容易一些。)

 

Ehcache分布式缓存的实现_第1张图片

 

  像很多框架一样,ehcache也有一个暴露给客户端的核心类:CacheManager. 这是一个管理所有缓存的生命周期的容 器。要对cache entry进行add,remove,update的时候,要先通过CacheManager找到合适的cache,而cache则是通过registeredventListenters调用所有的CacheEventListener(RmiSynchronousReplicator实现了该接口),在rmi分布式缓存的实现方式中,cacheeventlistener就是用的RmiSynchronousReplicator。RmiSynchronousReplicator能够见到CacheManagerPeerProvider(RmiCacheManagerPeerProvider是他的一个rmi方式实现类,还有通过multicast实现类)。CacheManagerPeerProvider的作用是找到所有的ehcache 缓存节点的RmiCachePeer。这样,RmiSynchronousReplicator就能够远程调用CacheManagerPeerProvider找到的缓存节点的RmiCachePeer的相应操作方法,来使得同样的操作在有节点上都执行一遍。RmiCachePeer是一个实现了remote接口的可供rmi调用的方法。

你可能感兴趣的:(框架,cache,jms,UML)