【技术实现步骤摘要】
一种动态CEP模式实现方法及装置
[0001]本申请涉及计算机
,尤其涉及一种动态CEP模式实现方法及装置。
技术介绍
[0002]在Flink复杂事件处理作业运行时,有时需要按照要求对作业中的复杂事件处理(Complex Event Processing,CEP)模式进行动态修改和更新。
[0003]目前,需要借助Groovy动态编译实现CEP模式的动态修改,以引入新的CEP模式。但是,该方法需要利用Groovy在线生成并执行新的字节码。而新的字节码在加载时可能会导致类加载错误,在卸载时可能会带来内存泄露风险。
技术实现思路
[0004]为了解决上述技术问题,本申请提供了一种动态CEP模式实现方法及装置,用于实现CEP模式的动态更新,稳定性和可靠性强。
[0005]为了实现上述目的,本申请实施例提供的技术方案如下:
[0006]本申请实施例提供一种动态复杂事件处理CEP模式实现方法,该方法包括:
[0007]对当前的CEP模式数据结构进行监测;
[0008]当监 ...
【技术保护点】
【技术特征摘要】
1.一种动态复杂事件处理CEP模式实现方法,其特征在于,所述方法包括:对当前的CEP模式数据结构进行监测;当监测到所述当前的CEP模式数据结构被更新时,拦截当前的非确定性状态机NFA对象的访问请求;所述当前的NFA对象和所述当前的CEP模式数据结构相对应;获取更新后的CEP模式数据结构;所述更新后的CEP模式数据结构根据CEP模式定义规范确定;基于所述CEP模式定义规范对所述更新后的CEP模式数据结构进行解析,获得新版NFA对象;用所述新版NFA对象替换所述当前的NFA对象;清空所述当前的NFA对象相关的中间状态存储数据,并初始化所述新版NFA对象;执行被拦截的所述NFA对象的访问请求,访问所述新版NFA对象。2.根据权利要求1所述的方法,其特征在于,在所述对当前的CEP模式数据结构进行监测之前,所述方法还包括:获取CEP模式定义规范;所述CEP模式定义规范通过根节点和子节点分别表征整个CEP模式和CEP模式中的子阶段;所述子节点用于定义配置参数。3.根据权利要求2所述的方法,其特征在于,所述基于所述CEP模式定义规范对所述更新后的CEP模式数据结构进行解析,获得新版NFA对象,包括:基于所述CEP模式定义规范遍历所述更新后的CEP模式数据结构中的子节点;将子节点对应的所述CEP模式中的子阶段解析为Pattern实例;将所述Pattern实例转译为新版NFA对象。4.根据权利要求1所述的方法,其特征在于,所述方法应用于Agent模块;所述Agent模块部署于Flink集群的各个TaskManager服务的所在服务器。5.根据权利要求1所述的方法,其特征在于,所述用所述新版NFA对象替换所述当前的NFA对象,包括:用所述新版NFA对象替换所述当前的NFA对象,使所述当前的NFA对象的对象引用指向所述新版NFA对象;则所述执行被拦截的所述NFA对象的访问请求,访问所述新版NFA对象,包括:执行被拦截的所述NFA对象的访问请求,通过访问所述对象引用来访问所述新版NFA对象。6.一种动态复杂事件处理CEP模...
【专利技术属性】
技术研发人员:徐圣杰,
申请(专利权)人:中国农业银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。