分布式事件处理系统技术方案

技术编号:34412436 阅读:26 留言:0更新日期:2022-08-03 22:05
本申请涉及一种分布式事件处理系统,系统采用Omnibus软件的配置。所述系统包括:事件接收集群和事件处理模块;事件接收集群接收外部系统发送的事件;事件接收集群中包括多个事件处理节点,事件处理节点并行处理事件接收集群中存储的事件;事件处理节点通过触发器脚本处理事件,触发器脚本是通过Omnibus软件提供的脚本语言编写;在处理事件时,解析触发器脚本,将触发器脚本转化为Java字节码,在Java虚拟机上执行事件处理。采用本系统能够在不改变原有Omnibus软件,提高系统的事件处理能力。提高系统的事件处理能力。提高系统的事件处理能力。

【技术实现步骤摘要】
分布式事件处理系统


[0001]本申请涉及计算机
,特别是涉及一种分布式事件处理系统。

技术介绍

[0002]目前国内的银行、保险、证券等行业在运维管理过程中用来对日志、Snmptrap等事件进行分析、存储和管理时,大多使用的是IBM Omnibus软件。
[0003]现有的事件处理平台IBM Omnibus,由于产生的时间已经很长,并且后期进行的优化提升很少,所以存在诸多缺陷,分别如下:技术架构陈旧:所有组件都是使用的单节点模式、单线程串行处理,既无法使用垂直扩充机器资源,也无法使用横向扩充服务实例数实现平台性能提升;性能和容量低:只能存储和计算固定量的实时报警数据,既无法适应常规的日益增长的报警数量,常规数据规模下的处理延迟只能达到分钟级,更无法抵抗任何大小的风暴冲击;处理能力低下:老平台已经不能处理逻辑越来越复杂的业务场景,例如复杂的报警抑制、报警自动化升级、报警根源性分析、报警相关性分析、高并发高频率处理等等;扩展性差:封闭的技术体系,无法进行任何的改造和联接外部系统。

技术实现思路

[0004]基于此,有必要针对上述技术问题,提供一种分布式事件处理系统。
[0005]一种分布式事件处理系统,所述系统采用Omnibus软件的配置,包括:事件接收集群和事件处理模块;所述事件接收集群接收外部系统发送的事件;所述事件处理模块为所述事件接收集群中的事件处理节点,所述事件处理节点并行处理所述事件接收集群中存储的事件;所述事件处理节点通过触发器(Trigger)脚本处理事件,所述触发器脚本是通过Omnibus软件提供的脚本语言编写;在处理事件时,解析所述触发器脚本,将所述触发器脚本转化为Java字节码,在Java虚拟机上执行事件处理。
[0006]在其中一个实施例中,触发器脚本的字段信息包括:名称信息、组别信息、活动状态信息、优先级信息、事件对象信息、执行条件信息、变量声明信息以及执行信息。
[0007]在其中一个实施例中,所述事件对象信息包含执行时间对象的时间逻辑;所述时间逻辑包括:插入事件前执行、更新事件前执行、删除事件前执行、重新插入事件前执行、插入事件后执行、更新事件后执行、删除事件后执行以及重新插入事件后执行;在处理事件时,判断事件中的关键词是否存在数据库中;若是,则判断触发器脚本中的事件对象信息是否包含更新事件前执行,若是,则按照优先级信息执行触发器脚本;若否,则依据关键词更新数据库中的记录;在依据关键词更
新数据库中的记录之后,判断触发器脚本中的事件对象信息是否包含更新事件后执行,若是,则按照优先级信息执行触发器脚本,若否,则停止执行;若否,则判断触发器脚本中的事件对象信息是否包含插入事件前执行,若是,则按照优先级信息执行触发器脚本;若否,则将关键词插入数据库中;在将关键词插入数据库中之后,判断触发器脚本中的事件对象信息是否包含插入事件后执行,若是,则按照优先级信息执行触发器脚本,若否,则停止执行。
[0008]在其中一个实施例中,所述执行信息包括:赋值语句、逻辑语句、过程程序以及函数调用;其中,赋值语句和逻辑语句预先存储在分布式事件处理系统中;过程程序为用户编写的执行逻辑;所述函数调用为分布式事件处理系统预先存储的执行逻辑。
[0009]在其中一个实施例中,事件处理节点接收到触发器脚本维护请求,事件处理节点根据所述触发器脚本维护请求对所述触发器脚本进行维护,并将维护结果广播至所述事件接收集群中其他事件处理节点以进行同步更新。
[0010]在其中一个实施例中,所述触发器脚本维护请求包括:新增触发器脚本请求、删除触发器脚本请求以及修改触发器脚本请求;当接收到新增触发器脚本,查询待新增的触发器脚本是否存在,若是则停止;若否,则将待新增的触发器脚本添加至数据库,并将待新增的触发器脚本转化为Java类,动态编译并实例化为Java实例,判断待新增的触发器是流式触发器或定时触发器,当待新增的触发器脚本为流式触发器时,将Java实例添加至到所有事件处理节点的流式触发器列表,当待新增的触发器脚本为定时触发器时,将Java实例添加至到所有事件处理节点的定时触发器列表,并触发定时触发调度器进行调度;当接收到删除触发器脚本时,查询待更新的触发器脚本是否存在,若是则停止;若否,则将待新增的触发器脚本更新至数据库,并将待更新的触发器脚本转化为Java类,动态编译并实例化为Java实例,判断待更新的触发器是流式触发器或定时触发器,当待更新的触发器脚本为流式触发器时,将Java实例添加至到所有事件处理节点的流式触发器列表,当待更新的触发器脚本为定时触发器时,将Java实例添加至到所有事件处理节点的定时触发器列表,并通知对应事件处理节点重新运行更新后的触发器脚本;当接收到删除触发器脚本时,查询待删除的触发器脚本是否存在,若否则停止;若是,从数据库中删除待删除的触发器脚本;当待删除的触发器脚本为流式触发器时,将Java实例从所有事件处理节点的流式触发器列表中删除,当待删除的触发器脚本为定时触发器时,将Java实例从所有事件处理节点的定时触发器列表中删除,并触发定时触发调度器进行调度;其中流式触发器表示触发器脚本在接收到事件时处理事件,定时触发器表示触发器脚本定时处理事件。
[0011]在其中一个实施例中,事件处理节点接收到过程程序维护请求,事件处理节点根据所述过程程序维护请求对所述过程程序进行维护,并将维护结果广播至所述事件接收集群中其他事件处理节点以进行同步更新。
[0012]在其中一个实施例中,所述过程程序维护请求包括:新增程序(Procedure)请求、修改程序请求以及删除程序请求;
当接收到新增程序请求时,将待新增过程程序转化为Java类,动态编译并实例化为Java实例,将Java实例添加至所有事件处理节点的过程程序列表中,并将待新增过程程序保存至数据库中;当接收到修改程序请求时,将待修改过程程序添加至队列,将从队列中取出的待修改过程程序对应的触发器脚本进行重解析、编译、加载以及更新,将调用了待修改过程程序的过程程序添加到队列直至队列中没有过程程序;当接收到删除程序请求时,判断待删除过程程序是否被其他触发器脚本或其他过程程序调用,若是,则反馈无法删除信息;若否,则将待删除过程程序从数据库中删除。
[0013]在其中一个实施例中,所述组别信息用于确定触发器脚本所关联的组别;所述活动状态信息包括冻结和活动;当设置触发器脚本的活动状态信息时,通过设置触发器脚本所关联组别的活动状态信息或者设置触发器脚本的活动信息。
[0014]在其中一个实施例中,事件处理节点接收到新增触发器脚本组别请求时,将待新增的触发器脚本组别保存至数据库中;事件处理节点接收到修改触发器脚本组别请求时,在所有事件处理节点中查询与待修改的触发器脚本组别关联的流式触发器脚本,将流式触发器脚本的活动状态信息状态修改为冻结或活动,在所有事件处理节点中查询与待修改的触发器脚本组别关联的定时触发器脚本,将定时触发器脚本的活动状态信息状态修改为冻结或活动;事件处理节点接收到删除触发器脚本组别本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种分布式事件处理系统,其特征在于,所述系统采用Omnibus软件的配置,包括:事件接收集群和事件处理模块;所述事件接收集群接收外部系统发送的事件;所述事件接收集群中包括多个事件处理节点,所述事件处理节点并行处理所述事件接收集群中存储的事件;所述事件处理节点通过触发器脚本处理事件,所述触发器脚本是通过Omnibus软件提供的脚本语言编写;在处理事件时,解析所述触发器脚本,将所述触发器脚本转化为Java字节码,在Java虚拟机上执行事件处理。2.根据权利要求1所述的系统,其特征在于,触发器脚本的字段信息包括:名称信息、组别信息、活动状态信息、优先级信息、事件对象信息、执行条件信息、变量声明信息以及执行信息。3.根据权利要求2所述的系统,其特征在于,所述事件对象信息包含执行时间对象的时间逻辑;所述时间逻辑包括:插入事件前执行、更新事件前执行、删除事件前执行、重新插入事件前执行、插入事件后执行、更新事件后执行、删除事件后执行以及重新插入事件后执行;在处理事件时,判断事件中的关键词是否存在数据库中;若是,则判断触发器脚本中的事件对象信息是否包含更新事件前执行,若是,则按照优先级信息执行触发器脚本;若否,则依据关键词更新数据库中的记录;在依据关键词更新数据库中的记录之后,判断触发器脚本中的事件对象信息是否包含更新事件后执行,若是,则按照优先级信息执行触发器脚本,若否,则停止执行;若否,则判断触发器脚本中的事件对象信息是否包含插入事件前执行,若是,则按照优先级信息执行触发器脚本;若否,则将关键词插入数据库中;在将关键词插入数据库中之后,判断触发器脚本中的事件对象信息是否包含插入事件后执行,若是,则按照优先级信息执行触发器脚本,若否,则停止执行。4.根据权利要求2所述的系统,其特征在于,所述执行信息包括:赋值语句、逻辑语句、过程程序以及函数调用;其中,赋值语句和逻辑语句预先存储在分布式事件处理系统中;过程程序为用户编写的执行逻辑;所述函数调用为分布式事件处理系统预先存储的执行逻辑。5.根据权利要求4所述的系统,其特征在于,事件处理节点接收到触发器脚本维护请求,事件处理节点根据所述触发器脚本维护请求对所述触发器脚本进行维护,并将维护结果广播至所述事件接收集群中其他事件处理节点以进行同步更新。6.根据权利要求5所述的系统,其特征在于,所述触发器脚本维护请求包括:新增触发器脚本请求、删除触发器脚本请求以及修改触发器脚本请求;当接收到新增触发器脚本,查询待新增的触发器脚本是否存在,若是则停止;若否,则将待新增的触发器脚本添加至数据库,并将待新增的触发器脚本转化为Java类,动态编译并实例化为Java实例,判断待新增的触发器是流式触发器或定时触发器,当待新增的触发器脚本为流式触发器时,将Java实例添加至到所有事件处理节点的流式触发器列表,当待
新增的触发器脚本为定时触发器时,将Java实例添加至到所有事件处理节点的定时触发器列表,并触发定时触发调度器进行调度;当接收到删除触发器...

【专利技术属性】
技术研发人员:彭丙聪徐添张宏杰王亮
申请(专利权)人:湖南傲思软件股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1