通過自定義 Filter,可以在 dubbo 調用鏈中加入特定的邏輯,比如埋點分析調用鏈。
1. 新建 Filter 類
// @Activate(group = {Constants.CONSUMER}) public class MyFilter implements Filter { public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException { System.out.println("開始調用 MyFilter"); Result result = invoker.invoke(invocation); System.out.println("結束調用 MyFilter"); return result; } }
如果加上 @Activate 注解,則該 filter 會成為默認的
2. 修改 /META-INF/dubbo/internal/com.alibaba.dubbo.rpc.Filter 文件
增加一行:
myFilter=com.zhang.MyFilter
3. 配置 filter 參數
<dubbo:reference id="hello" interface="com.zhang.HelloService" proxy="jdk" retries="0" filter="myFilter"/>
