Dubbo——过滤器链
来源:互联网 发布:用c语言实现约瑟夫环 编辑:程序博客网 时间:2024/06/03 19:54
过滤器链
各类协议protocol类均是由ProtocolFilterWrapper类封装的,ProtocolFilterWrapper在服务的暴露与引用的过程中根据KEY是PROVIDER还是CONSUMER来构建服务提供者与消费者的调用过滤器链。ProtocolFilterWrapper的export和refer方法代码如下:
构建过滤器链的方法是buildInvokerChain,代码如下:
在构建调用链时方法先获取Filter列表,然后创建与Fitler数量一样多Invoker结点,接着将这些结点串联在一起,构成一个链表,最后将这个链的首结点返回,随后的调用中,将从首结点开始,依次调用各个结点,完成调用后沿调用链返回。这里各个Invoker结点的串联是通过与其关联的invoke方法来完成的。
在invoke方法内部,通过调用与该invoker关联的filter中的invoke方法来实现结点的连接。调用时将next传入invoke方法,在调用时首先会调用该结点对应的filter的invoke方法,接着调用传入参数next的invoke方法。Next的invoke方法同样会调用自己所关联的filter的invoke方法,这样就完成了结点的串联。可以看到链表的最后一个结点就是buildInvokerChain 方法的入参invoker。最终buildInvokerChain方法通过链表头插法完成调用链的创建。因此在真正的调用请求处理前会经过若干filter进行预处理。
过滤器链的创建可以看作是职责链模式(Chain of Responsibility Pattern)的一个实现。这样系统中增加一个新的过滤器预处理请求时,无须修改原有系统的代码,只需重新建调用链即可。阅读全文
0 0
- Dubbo——过滤器链
- dubbo调用链/过滤器链的创建分析
- Dubbo——监听器链
- Servlet第八章知识点总结——过滤器 过滤器链
- Dubbo之——Dubbo服务集群
- 精通Dubbo——Dubbo使用指南
- 精通Dubbo——Dubbo配置文件详解
- Dubbo之——Dubbo Filter实战
- Dubbo之——Dubbo服务集群
- Dubbo——HelloWorld
- 过滤器的模拟——一组过滤器
- 【AngularJS】过滤器——currency 过滤器
- dubbo 自定义过滤器,打印接口调用信息
- JQuery——过滤器
- Servlet——过滤器
- AngularJS——过滤器
- Vue——过滤器
- MOQL—过滤器(Filter)
- C#之GridControl导出为Excel
- 互联网造车 梦想何时落地?
- 统计iOS项目代码行数
- Redisson 分布式锁实现分析
- A build only device cannot be used to run this target.
- Dubbo——过滤器链
- IPUtil 工具类总结
- 关于js的ajax方法导致跨域问题的解决办法
- 高德地图心得(一)—定位与移动(Maker处于地图中心)
- fetch&前端路由原理
- 阿里云linux上安装docker
- 想知道需求分析实战课程会讲什么内容吗?
- hadoop 初识,环境配置,运行demo
- ios中的单例模式