请访问https://git.oschina.net/zhjh256/io-spider获取最新更新。

spider支持在请求执行前或完成后进行特殊处理,比如安全性检查、敏感字段混淆等等。为此,spider提供了BeforeFilter和AfterFilter。其执行位置如下图所示:

流水线插件配置在spider.xml配置文件的<plugin pluginId=”spider.filter”>节点下,如下所示:

<plugin pluginId=”spider.filter”>

<filter>com.ld.net.spider.demo.filter.BeforeFilterImpl1 </filter>

<filter>com.ld.net.spider.demo.filter.BeforeFilterImpl2</filter>

<filter> com.ld.net.spider.demo.filter.AfterFilterImpl1 </filter>

<filter> com.ld.net.spider.demo.filter.AfterFilterImpl2 </filter>

</plugin>

其中com.ld.net.spider.demo.filter.BeforeFilterImpl1为完整类名,放置在classpath*目录下即可。过滤器类在配置文件中的顺序为执行顺序,spider运行时会根据给定类实现了BeforeFilter或者AfterFilter自动确定其为前置或后置过滤器,没有实现任何一个接口的类会自动在启动时抛出异常并中止。

为最佳性能和灵活性,建议仅在主动调用客户端实现前置或后置过滤器,服务实现端实现前置或后置过滤器,尽可能避免在路由节点使用过滤器(当节点对于某功能充当路由节点时,请求参数以及返回值将以未解密JSON StringBuilder的格式传递)。

前置过滤器

要进行前置处理,必须实现BeforeFitler过滤器,其签名如下所示:

package com.ld.net.spider.filter;

import com.ld.net.spider.meta.SpiderPacketHead;

public interface BeforeFilter {

public void doFilter(SpiderPacketHead head,Object origParam);

}

head spider上下文信息。

origParam为序列化之前的原始请求参数。

后置过滤器

要进行后置处理,必须实现AfterFitler过滤器,其签名如下所示:

package com.ld.net.spider.filter;

public interface AfterFilter {

public void doFilter(SpiderPacketHead head,Object retObj);

}

head spider上下文信息。

retObj为反序列化之后的返回值。

转载于:https://www.cnblogs.com/zhjh256/p/6096343.html

spider RPC过滤器相关推荐

  1. spider RPC入门指南

    请访问https://git.oschina.net/zhjh256/io-spider获取最新更新. 本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件 ...

  2. spider RPC更新至2.0.0-RELEASE

    spider使用java语言开发,使用Spring作为IoC容器,采用TCP/IP协议,在此基础上,结合SaaS金融交易系统的特性进行针对性和重点设计,以更加灵活和高效的满足金融交易系统多租户.高可用 ...

  3. java反射之-性能优化

    在最近的计划中,打算看看在不使用google protobuf的情况下,在原有的采用jackson作为json序列化工具的基础上,是否可以实现进一步的性能优化.主要是针对list的情况. 测试的时候选 ...

  4. EOS Chain/Wallet RPC API的PHP开发包

    2019独角兽企业重金招聘Python工程师标准>>> 介绍一个EOS Chain/Wallet RPC API的PHP开发包. 开始 你可以查看EOS的RPC API参考,但要注意 ...

  5. 重磅消息:蚂蚁金服推出RPC框架

    2019独角兽企业重金招聘Python工程师标准>>> 先附上框架地址 https://github.com/alipay/sofa-boot https://github.com/ ...

  6. dubbo 自定义过滤器,打印接口调用信息

    dubbo提供了web filter类似的com.alibaba.dubbo.rpc.Filter,这样,我们可以在dubbo提供的服务提供方和消费方都可以自定义过滤 器,从而可以获得方法调用的时间或 ...

  7. 通过命令行在Python中测试以太坊RPC客户端

    2019独角兽企业重金招聘Python工程师标准>>> 在这个笔记中,我将使用Python命令行测试以太坊的RPC客户端,准备好狂敲键盘吧.过程中有关JSON RPC的更多信息,可以 ...

  8. git clone的时候报error: RPC failed; result=18错误

    因业务需求,需要把内网gitlab仓库的地址对外网访问,在gitlab前端配置了一个nginx代理服务器,来实现需求,可以在git clone的时候报error: RPC failed错误 [root ...

  9. HBase学习之路 (六)过滤器

    过滤器(Filter) 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hb ...

  10. 某个软件调用目标异常_线上RPC远程调用频繁超时问题排查,大功臣Arthas

    来源于公众号Java艺术 , 作者wujiuye 两耳不闻窗外事,一心只读圣贤书.又是一个美好的周末,一觉睡到自然醒,写写文章看看书!这周原计划是写Dubbo注册中心的,但这周先说故事. 上次服务雪崩 ...

最新文章

  1. 如何学会读论文?送你滑铁卢大学S. Keshav的三轮阅读法
  2. LNK1169 找到一个或多个多重定义的符号
  3. Halcon学习笔记——机器视觉应用工程开发思路及相机标定
  4. JMG | 基因PRKG2的变异导致骨骼表型异常
  5. 矩池云上使用Visdom可视化图像说明
  6. 背景图页面缩小会变形_HTML中怎么让背景图片跟着浏览器窗口变大变小?
  7. Matlab帮助文档打开和命令窗口中文显示设置
  8. 由对称性知定点一定在x轴上_2021版江苏高考数学一轮复习讲义:第8章 第10节 圆锥曲线中的证明、探索性问题 Word版含答案...
  9. 一文读懂华为、小米、OV成为国产四强背后的秘诀?
  10. 微信小程序如何完成1000独立访客(UV)
  11. 使用EXCEL进行计数
  12. QT 利用QAxObject大数据读写excel文件
  13. 小程序模板报价_小程序模板价格_小程序模板使用多少钱
  14. 线性代数:如何求特征值和特征向量?
  15. 粉笔公考——判断推理
  16. 2022焊工(初级)特种作业证考试题库及答案
  17. Windows 10的虚拟桌面
  18. 路由器管理界面登录不上应该怎么办
  19. java实现生日相同概率
  20. B. Dictionary

热门文章

  1. swift -懒加载创建view
  2. c++ poco 使用mysql中文乱码问题
  3. 5016.网络安全__防火墙应用案例和双机HA部署案例
  4. linux下 vim修改文件后如何保存
  5. 老大加需求:做一个支持超大文件HTTP断点续传的上传服务,我懵逼了~
  6. UC大裁员:全体带薪休假至3月31日,补偿措施羡煞网友!
  7. 福利 | 简历模板大放送
  8. A.01.03-模块的输入—模拟量输入
  9. 剑指Offer——数组中出现次数超过一半的数字
  10. 比较List和ArrayList的性能及ArrayList和LinkedList优缺点