1. 程式人生 > >dubbo如何做cache緩存

dubbo如何做cache緩存

沒有 順序 provide invoke try ash con dpa efi

duubo如何使用cache的?
CacheFilterclass裏面有,這個filter既可以在provider也可以在consumer
if (cacheFactory != null && ConfigUtils.isNotEmpty(invoker.getUrl().getMethodParameter(invocation.getMethodName(), Constants.CACHE_KEY))) {
可見只要對方法url加了cache標誌,就會使用cache,通過cacheFactory得到幾個cache,重點說下lru的cache

lru-cache繼承自LinkedHashMap,由於這個map沒有線程安全,所以所有操作都加了排他鎖。
既然是cache,為了更快讀取到數據,肯定用hashmap,但是hashmap無法做到lru,為了解決這個問題,就用到了LinkedHashMap,這個map跟hashmap不同的地方就在於,鏈表部分是雙向的,因此對於每次put進來Entry,除了將其保存到哈希表中對應的位置上之外,還會將其插入到雙向鏈表的尾部(有頭尾指針)來保證插入的順序,從而達到lru的作用。

dubbo如何做cache緩存