1. 程式人生 > >dubbo如何做cache快取

dubbo如何做cache快取

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的作用。