[发明专利]一种动态CEP模式实现方法及装置在审
申请号: | 202011623836.9 | 申请日: | 2020-12-30 |
公开(公告)号: | CN112650607A | 公开(公告)日: | 2021-04-13 |
发明(设计)人: | 徐圣杰 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/448 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 刘晓菲 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 动态 cep 模式 实现 方法 装置 | ||
本申请公开了一种动态CEP模式实现方法及装置,该方法包括:对当前的CEP模式数据结构进行监测。当监测到当前的CEP模式数据结构被更新时,拦截当前的非确定性状态机NFA对象的访问请求。获取更新后的CEP模式数据结构;更新后的CEP模式数据结构根据CEP模式定义规范确定。基于CEP模式定义规范对更新后的CEP模式数据结构进行解析,获得新版NFA对象。用新版NFA对象替换当前的NFA对象。清空当前的NFA对象相关的中间状态存储数据,并初始化新版NFA对象执行被拦截的NFA对象的访问请求,访问新版NFA对象。通过该方法,当CEP模式数据结构需要修改时,只需要对运行时的当前的NFA对象和中间状态存储数据进行替换和删除,不需要生成新的字节码,避免了执行错误、内存泄露问题。
技术领域
本申请涉及计算机技术领域,尤其涉及一种动态CEP模式实现方法及装置。
背景技术
在Flink复杂事件处理作业运行时,有时需要按照要求对作业中的复杂事件处理(Complex Event Processing,CEP)模式进行动态修改和更新。
目前,需要借助Groovy动态编译实现CEP模式的动态修改,以引入新的CEP模式。但是,该方法需要利用Groovy在线生成并执行新的字节码。而新的字节码在加载时可能会导致类加载错误,在卸载时可能会带来内存泄露风险。
发明内容
为了解决上述技术问题,本申请提供了一种动态CEP模式实现方法及装置,用于实现CEP模式的动态更新,稳定性和可靠性强。
为了实现上述目的,本申请实施例提供的技术方案如下:
本申请实施例提供一种动态复杂事件处理CEP模式实现方法,该方法包括:
对当前的CEP模式数据结构进行监测;
当监测到所述当前的CEP模式数据结构被更新时,拦截当前的非确定性状态机NFA对象的访问请求;所述当前的NFA对象和所述当前的CEP模式数据结构相对应;
获取更新后的CEP模式数据结构;所述更新后的CEP模式数据结构根据CEP模式定义规范确定;
基于所述CEP模式定义规范对所述更新后的CEP模式数据结构进行解析,获得新版NFA对象;
用所述新版NFA对象替换所述当前的NFA对象;
清空所述当前的NFA对象相关的中间状态存储数据,并初始化所述新版NFA对象;
执行被拦截的所述NFA对象的访问请求,访问所述新版NFA对象。
可选的,在所述对当前的CEP模式数据结构进行监测之前,所述方法还包括:
获取CEP模式定义规范;所述CEP模式定义规范通过根节点和子节点分别表征整个CEP模式和CEP模式中的子阶段;所述子节点用于定义配置参数。
可选的,所述基于所述CEP模式定义规范对所述更新后的CEP模式数据结构进行解析,获得新版NFA对象,包括:
基于所述CEP模式定义规范遍历所述更新后的CEP模式数据结构中的子节点;
将子节点对应的所述CEP模式中的子阶段解析为Pattern实例;
将所述Pattern实例转译为新版NFA对象。
可选的,所述方法应用于Agent模块;所述Agent模块部署于Flink集群的各个TaskManager服务的所在服务器。
可选的,所述用所述新版NFA对象替换所述当前的NFA对象,包括:
用所述新版NFA对象替换所述当前的NFA对象,使所述当前的NFA对象的对象引用指向所述新版NFA对象;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011623836.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种抗冲击装配式桥梁
- 下一篇:一种统一资源定位符URL的处理方法及装置