Davids原理探究:Dubbo过滤器原理

Dubbo过滤器原理

在这里插入图片描述

关注可以查看更多粉丝专享blog~

概述

Dubbo过滤器提供了服务提供者和消费者的调用拦截,即每次执行RPC调用的时候,对应的过滤器都会生效。虽然过滤器功能强大,但由于每次调用的时候都会执行,因此在使用的时候需要注意它对性能的影响。

使用方式

在Dubbo中又很多内置过滤器,并且大多数都是使用@Activate注解默认启用的,比如ContextFilter。对于自行扩展的过滤器有以下两种启用方式。

@Activate注解启用

在自定义的过滤器类上添加@Activate(group = Constants.PROVIDER/CONSUMER, order = -10000)注解即可,group标识是提供者/消费者过滤器,order标识优先级(越小越先执行)。

XML配置启用
<!-- 消费方调用过程拦截 -->
<dubbo:reference filter="xxx,yyy"/>

<!-- 消费方调用过程默认拦截器,将拦截所有reference -->
<dubbo:consumer filter="xxx,yyy"/>

<!-- 服务提供方调用过程拦截 -->
<dubbo:service filter="xxx,yyy"/>

<!-- 服务提供方调用过程默认拦截器,将拦截所有reference -->
<dubbo:provider filter="xxx,yyy"/>

规则

  1. 过滤器顺序:
    1. 用户自定义的过滤器顺序默认会在框架内置过滤器之后,我们可以使用filter="xxx,default"这种配置方式让自定义过滤器顺序靠前。
    2. 我们在配置filter="xxx,yyy"的时候,写在前面的xxx会比yyy的顺序要靠前。
  2. 剔除过滤器:对于一些默认过滤器或一些自动激活的过滤器,有些方法不想使用这些过滤器,则可以使用"-“加过滤器名称来过滤,如filter=”-ContextFilter"会让ContextFilter不生效,如果不想使用所有默认启动的过滤器,则可以配置filter="-default"来进行剔除。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值