dubbo框架提供了filter機制的擴充套件點(本文基於dubbo2.6.0版本)。
在dubbo-rpc模組下的dubbo-rpc-api模組下定義了filter介面:org.apache.dubbo.rpc.filter
dubbo框架自帶了22個filter。
在dubbo-rpc-api模組提供了15個filter:
accesslogfilter
activelimitfilter
classloaderfilter
compatiblefilter
consumercontextfilter
contextfilter
deprecatedfilter
echofilter
exceptionfilter
executelimitfilter
genericfilter
genericimplfilter
timeoutfilter
tokenfilter
tpslimitfilter
dubbo-rpc-default模組提供了2個filter:
futurefilter
tracefilter
dubbo-filter模組有2個子模組,提供了2個filter:
dubbo-filter-cache提供了1個filter:cachefilter
dubbo-filter-validation提供了1個filter:validationfilter
dubbo-test-examples提供了1個filter:
logfilter
dubbo-spring-config提供了1個filter:
mockfilter
dubbo-monitor-api提供了1個filter:
monitorfilter
provider端:
consumer端:
系統自帶的filter,上面的圖可以可以看到,
provider端:echofilter->classloaderfilter->genericfilter->contextfilter->tracefilter->timeoutfilter->monitorfilter->exceptionfilter
consumer端:consumercontextfilter->futurefilter->monitorfilter
@active註解定義了filter的位置和順序,其中group屬性定義了該filter用於provider或consumer端,order屬性定義了filter的絕對順序(數值小的排在前面)。
以echofilter
為例
@activate(group = constants.provider, order = -110000)
public class echofilter implements filter
表示在provder端使用,絕對順序為-110000。
classloaderfilter
:
@activate(group = constants.provider, order = -30000)
public class classloaderfilter implements filter
表示在provder端使用,絕對順序為-30000,值比-110000大,因此在echofilter的後面呼叫。
回聲測試。
異常處理。
參考:
DUBBO學習筆記
1 該例子是spring整合dubbo,spring包有點問題 2 3 springboot整合dubb,可以執行 2 zookeeper安裝 1 server.port 8082 5 dubbo是面向介面呼叫的,該介面被實現後註冊到zookeeper上 spring配置檔案中配置了zookeepe...
dubbo學習筆記
dubbo整合spring boot的官網位址為 dubbo 當我發現了這個位址後,我當即動手實踐,新建了工程,迅速搭起了程式的框架。我首先做的是用xml的配置檔案的方式進行配置 避免上次一做就是spring boot框架,在當時的環境下,jar的依賴關係複雜,以致最後以失敗而告終 xml的方式雖然...
DUBBO學習筆記
1 windows上啟動zookeeper失敗的原因 1.執行zkserver.com的時候新增了 start引數,在windows上不需要改引數,直接啟動即可 2.datadir e software zookeeper 3.3.6 data 沒有設定,設定上即可 3.datalogdir e s...