美文网首页
Dubbo拦截器(Filter)的配置步骤

Dubbo拦截器(Filter)的配置步骤

作者: 寒沁 | 来源:发表于2021-10-22 16:02 被阅读0次
    1. 创建Filter类 DubboSentinelFilter,实现Filter接口( org.apache.dubbo.rpc.Filter ),在 DubboSentinelFilter 上添加注解 @Activate(group = CommonConstants.PROVIDER) 表示该拦截器用于rpc的提供者。示例如下
    @Activate(group = CommonConstants.PROVIDER)
    public class DubboSentinelFilter implements Filter {
        @Override
        public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {
                Result result = invoker.invoke(invocation);
                return result;
        }
    }
    
    1. 在resources目录下创建文件夹 META-INF,在该文件夹下创建文件夹 dubbo,在dubbo下创建文件:org.apache.dubbo.rpc.Filter , 在文件下添加Filter配置
    demoProviderFilter=com.demo.filter.DubboSentinelFilter
    
    1. 很重要的一个步骤,将org.apache.dubbo.rpc.Filter文件打包到classes.META-INF的目录下,如果maven的pom文件配置的不对,文件时打包不进去的,先看打包的成品


      image.png

      那在maven里面如何配置呢 ?在<build>标签下配置resource即可,如下

    <build>
        <finalName>${artifactId}-1.0.0</finalName>
        <sourceDirectory>src/main/java</sourceDirectory>
        <outputDirectory>src/main/webapp/WEB-INF/classes</outputDirectory>
        <resources>
            <resource>
                <directory>src/main/resources/base</directory>
            </resource>
            <!-- 关键配置 -->
            <resource>
                <directory>src/main/resources/META-INF</directory>
                <targetPath>META-INF</targetPath>
            </resource>
        </resources>
    </build>
    
    1. 在你需要该拦截器生效的地方,配上该filter即可,例如xml配置provider的方式
    <dubbo:service interface="com.demo.service.TestProvider" ref="testProvider"
                       version="1.0.0" group="${dubbo.service.group}" filter="demoProviderFilter" timeout="2000" retries="0">
    </dubbo:service>
    

    以上四个步骤配置完成之后,该Filter就生效,快去测测看吧。

    相关文章

      网友评论

          本文标题:Dubbo拦截器(Filter)的配置步骤

          本文链接:https://www.haomeiwen.com/subject/whgoiltx.html