spider RPC过滤器
请访问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过滤器相关推荐
- spider RPC入门指南
请访问https://git.oschina.net/zhjh256/io-spider获取最新更新. 本部分将介绍使用spider RPC开发分布式应用的客户端和服务端. spider RPC中间件 ...
- spider RPC更新至2.0.0-RELEASE
spider使用java语言开发,使用Spring作为IoC容器,采用TCP/IP协议,在此基础上,结合SaaS金融交易系统的特性进行针对性和重点设计,以更加灵活和高效的满足金融交易系统多租户.高可用 ...
- java反射之-性能优化
在最近的计划中,打算看看在不使用google protobuf的情况下,在原有的采用jackson作为json序列化工具的基础上,是否可以实现进一步的性能优化.主要是针对list的情况. 测试的时候选 ...
- EOS Chain/Wallet RPC API的PHP开发包
2019独角兽企业重金招聘Python工程师标准>>> 介绍一个EOS Chain/Wallet RPC API的PHP开发包. 开始 你可以查看EOS的RPC API参考,但要注意 ...
- 重磅消息:蚂蚁金服推出RPC框架
2019独角兽企业重金招聘Python工程师标准>>> 先附上框架地址 https://github.com/alipay/sofa-boot https://github.com/ ...
- dubbo 自定义过滤器,打印接口调用信息
dubbo提供了web filter类似的com.alibaba.dubbo.rpc.Filter,这样,我们可以在dubbo提供的服务提供方和消费方都可以自定义过滤 器,从而可以获得方法调用的时间或 ...
- 通过命令行在Python中测试以太坊RPC客户端
2019独角兽企业重金招聘Python工程师标准>>> 在这个笔记中,我将使用Python命令行测试以太坊的RPC客户端,准备好狂敲键盘吧.过程中有关JSON RPC的更多信息,可以 ...
- git clone的时候报error: RPC failed; result=18错误
因业务需求,需要把内网gitlab仓库的地址对外网访问,在gitlab前端配置了一个nginx代理服务器,来实现需求,可以在git clone的时候报error: RPC failed错误 [root ...
- HBase学习之路 (六)过滤器
过滤器(Filter) 基础API中的查询操作在面对大量数据的时候是非常苍白的,这里Hbase提供了高级的查询方法:Filter.Filter可以根据簇.列.版本等更多的条件来对数据进行过滤,基于Hb ...
- 某个软件调用目标异常_线上RPC远程调用频繁超时问题排查,大功臣Arthas
来源于公众号Java艺术 , 作者wujiuye 两耳不闻窗外事,一心只读圣贤书.又是一个美好的周末,一觉睡到自然醒,写写文章看看书!这周原计划是写Dubbo注册中心的,但这周先说故事. 上次服务雪崩 ...
最新文章
- 如何学会读论文?送你滑铁卢大学S. Keshav的三轮阅读法
- LNK1169	找到一个或多个多重定义的符号
- Halcon学习笔记——机器视觉应用工程开发思路及相机标定
- JMG | 基因PRKG2的变异导致骨骼表型异常
- 矩池云上使用Visdom可视化图像说明
- 背景图页面缩小会变形_HTML中怎么让背景图片跟着浏览器窗口变大变小?
- Matlab帮助文档打开和命令窗口中文显示设置
- 由对称性知定点一定在x轴上_2021版江苏高考数学一轮复习讲义:第8章 第10节 圆锥曲线中的证明、探索性问题 Word版含答案...
- 一文读懂华为、小米、OV成为国产四强背后的秘诀?
- 微信小程序如何完成1000独立访客(UV)
- 使用EXCEL进行计数
- QT 利用QAxObject大数据读写excel文件
- 小程序模板报价_小程序模板价格_小程序模板使用多少钱
- 线性代数:如何求特征值和特征向量?
- 粉笔公考——判断推理
- 2022焊工(初级)特种作业证考试题库及答案
- Windows 10的虚拟桌面
- 路由器管理界面登录不上应该怎么办
- java实现生日相同概率
- B. Dictionary
热门文章
- swift -懒加载创建view
- c++ poco 使用mysql中文乱码问题
- 5016.网络安全__防火墙应用案例和双机HA部署案例
- linux下 vim修改文件后如何保存
- 老大加需求:做一个支持超大文件HTTP断点续传的上传服务,我懵逼了~
- UC大裁员:全体带薪休假至3月31日,补偿措施羡煞网友!
- 福利 | 简历模板大放送
- A.01.03-模块的输入—模拟量输入
- 剑指Offer——数组中出现次数超过一半的数字
- 比较List和ArrayList的性能及ArrayList和LinkedList优缺点