Dubbo Filter过滤器

21 篇文章 0 订阅
12 篇文章 0 订阅

Dubbo Filter

Dubbo Filter 的入口是ProtocolFilterWrapper。ProtocolFilterWrapper 实现了 Protocol 接口。当调用ExtensionLoader的getExtension方法时,会做拦截处理,如果存在封装器,则返回封装器实现,而将真实实现通过构造方法注入到封装器中。举个简单的例子,当获取DubboProtocol的时候,会
先经过ProtocolFilterWrapper进行包装。

1. 源码分析

ProtocolFilterWrapper 实现了 Protocol 接口,是一个包装类。

在这里插入图片描述

生产者和消费者都会创建过滤器链

无论是生产者还是消费者都会创建过滤器链,看一下buildInvokerChain的源码。

在这里插入图片描述

注意,在创建装饰者模式的时,Filter是倒序的。看一下debug的结果图。

在这里插入图片描述

最终,消费者的链路为:

ConsumerContextFilter -> FutureFilter -> MonitorFilter -> GenericImplFilter -> DubboInvoker

生产者的链路为:

EchoFilter -> ClassloaderFilter -> GenericFilter -> ContextFilter -> TraceFilter -> TimeoutFilter -> MonitorFilter -> ExceptionFilter -> AbstractProxyInvoker

2. 总结

Dubbo可以通过装饰器模式增强Invoker功能, Dubbo Filter是Dubbo重要的调用拦截扩展。

3. 鸣谢

Dubbo Filter

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱coding的同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值