一种基于规则匹配的事件处理方法及系统与流程

专利2022-06-30  69


本发明涉及计算机网络技术领域,更具体地,涉及一种基于规则匹配的事件处理方法及系统。



背景技术:

在日常工作场景中,存在大量的事件,如:应用报警、产品更新、工单、系统操作、脚步执行等,这些事件各有不同的处理需求,都涉及规则匹配。在传统的涉及业务规则的应用系统开发过程中,业务规则一般都是在需求分析阶段由用户提供,内嵌在应用系统的程序代码中。应用系统一旦开发完成,业务规则便相对固定不易被改动。



技术实现要素:

为了满足快速变化的业务需求,以及提高应用系统的灵活性,将事件的处理拆分成多个功能独立的服务,采用基于消息的触发方式,能够做到完全解耦,同时引入规则匹配引擎,将业务规则从程序代码中分离出来,规则通过界面配置产生,以支撑快速变化的业务需求。

本发明提供一种基于规则匹配的事件处理方法,包括:

步骤一、接入服务,配置事件源对应的接入规则,选择接入方式,对各种不同类型的事件,采用统一的方式接收并写入接入队列;

步骤二、切分服务,订阅接入队列,根据事件源对应的切分规则进行消息的切分、清洗,将消息内容格式化key-value键值对,写入切分队列;

步骤三、计算服务,订阅切分队列,根据事件对应的计算规则,对该事件消息进行关联计算,消息内容富化,将计算结果和切分消息组合成一条更完整的新事件消息,写入计算队列;

步骤四、规则服务,订阅计算队列,根据事件对应的字段匹配规则、服务调用和通知规则,过滤掉不符合匹配规则的事件消息,对符合匹配规则的事件消息,在源事件消息的基础上,附带上执行服务调用和通知方式的规则封装为一条新消息,写入规则队列;

步骤五、通知服务,订阅规则队列,读取匹配事件消息,根据事件消息附带的执行服务的规则,调用服务,并根据通知方式,以及通知模板,进行变量替换,完成通知推送。

在本公开的一实施例中,所述步骤一中,支持的接入方式有http、tcp和udp。

在本公开的一实施例中,所述步骤二中,支持的切分模式有json模式、分隔符模式、自定义方法模式。

在本公开的一实施例中,所述步骤三中,所述计算规则为支持任何基于restful的服务的计算函数。

在本公开的一实施例中,所述步骤四中,所述规则包括逻辑规则(and,or,not,in)或比较规则(=,!=,>,<,>=,<=,in,notin,list)。

在本公开的一实施例中,所述步骤五中,推送通知方式包括邮件、短信、语音、钉钉群。

本发明还提供一种基于规则匹配的事件处理系统,包括:

接入服务模块,配置事件源对应的接入规则,选择接入方式,对各种不同类型的事件,采用统一的方式接收并写入接入队列;

切分服务模块,订阅接入队列,根据事件源对应的切分规则进行消息的切分、清洗,将消息内容格式化key-value键值对,写入切分队列;

计算服务模块,订阅切分队列,根据事件对应的计算规则,对该事件消息进行关联计算,消息内容富化,将计算结果和切分消息组合成一条更完整的新事件消息,写入计算队列;

规则服务模块,订阅计算队列,根据事件对应的字段匹配规则、服务调用和通知规则,过滤掉不符合匹配规则的事件消息,对符合匹配规则的事件消息,在源事件消息的基础上,附带上执行服务调用和通知方式的规则封装为一条新消息,写入规则队列;

通知服务模块,订阅规则队列,读取匹配事件消息,根据事件消息附带的执行服务的规则,调用服务,并根据通知方式,以及通知模板,进行变量替换,完成通知推送。

在本公开的一实施例中,所述接入服务模块中,支持的接入方式有http、tcp和udp。

在本公开的一实施例中,所述切分服务模块中,支持的切分模式有json模式、分隔符模式、自定义方法模式。

在本公开的一实施例中,所述规则服务模块中,所述规则包括逻辑规则(and,or,not,in)或比较规则(=,!=,>,<,>=,<=,in,notin,list)。

在本公开的一实施例中,所述通知服务模块中,推送通知方式包括邮件、短信、语音、钉钉群。

本发明提供的基于规则匹配的事件处理方法及系统,具有的技术效果为,通过采用消息的传递方式,做到了各服务之间完全的解耦,各服务均可以独立分布式部署,同时依据各服务的实际负载可以实现动态扩缩容。事件的接入,可以根据实际情况,自由选择处理方式,如果只需要进行信息推送,则事件可以直接写入推送服务订阅的消息中,省略不必要的环节,保证信息推送的高效和便捷。

本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。

下面通过附图和实施例,对本发明实施例的技术方案做进一步的详细描述。

附图说明

图1是基于规则匹配的事件处理方法流程图;

图2是基于规则匹配的事件处理系统架构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

本发明的实施例之一提供一种基于规则匹配的事件处理方法,整体技术方案是按照如图1所示的流程,步骤如下

步骤1:配置事件源对应的接入规则,配置包括事件源名称、事件源描述等。选择接入方式,支持的接入方式有http、tcp、udp,确认并生成唯一的接入地址。事件生产者通过调用该接入地址,完成事件的接入,事件将以消息的方式存储;对各种不同类型的事件,采用统一的方式接收并写入接入队列,支持的消息类型有mns、kafka、mq等。

步骤2:选择接入事件源,配置该事件源对应的切分模式,支持的切分模式有json模式、分隔符模式、自定义方法模式。订阅接入队列,根据事件源对应的切分规则,对该事件消息内容按照规则进行切分、清洗,将消息内容格式化key-value键值对,写入切分队列。

步骤3:选择切分事件源,按照该事件源的字段,配置对应的计算函数,计算函数支持任何基于restful的服务。订阅切分队列,在切分数据源的基础上,根据事件对应的计算规则,对该事件消息进行关联计算,消息内容富化,将计算结果和切分消息组合成一条更完整的新事件消息,写入计算队列。

步骤4:选择计算事件源,按照该事件源的字段,配置规则,规则包括逻辑规则(and,or),比较规则(=,!=,>,<,>=,<=,in,notin,list)。如下表1所示,字段规则“字段1=a”“字段2>5”分别标记为ab规则,规则表达式为“aandb”。

表1

配置该事件源,在符合规则情况下,需要执行的服务和通知的方式(邮件、短信、语音、钉钉群)。订阅计算队列,读取计算之后的事件消息,根据事件对应的字段匹配规则、服务调用和通知规则,过滤掉不符合匹配规则的事件消息,对符合匹配规则的事件消息,在源事件消息的基础上,附带上执行服务调用和通知方式的规则封装为一条新消息,写入规则队列。

步骤5:订阅规则队列,读取匹配事件消息,根据事件消息附带的执行服务的规则,调用服务,并根据通知方式,以及通知模板,进行变量替换,完成通知推送。

本发明的另一实施例提供一种基于规则匹配的事件处理系统,该系统采用分布式的微服务架构,各服务模块依据功能进行划分,如图2所示,包括:

一、接入服务模块

1、配置事件源对应的接入规则,配置包括事件源名称、事件源描述等。

2、选择接入方式,支持的接入方式有http、tcp、udp,确认并生成唯一的接入地址。

3、事件生产者,通过调用该接入地址,完成事件的接入,事件基于消息存储,写入接入队列,支持的消息类型有mns、kafka、mq等。

二、切分服务模块

1、选择接入事件源,配置该事件源对应的切分模式,支持的切分模式有json模式、分隔符模式、自定义方法模式。

2、切分服务订阅接入队列,按照事件源对应的切分规则,进行消息的切分、清洗,结果基于消息存储,写入切分队列。

三、计算服务模块

1、选择切分事件源,按照该事件源的字段,配置对应的计算函数,计算函数支持任何基于restful的服务。

2、计算服务订阅切分队列,根据该事件源对应的计算规则,调用对应的计算服务,将计算结果和切分消息组合成一条新消息,写入计算队列。

四、规则服务模块

1、选择计算事件源,按照该事件源的字段,配置规则,规则包括逻辑规则(and,or),比较规则(=,!=,>,<,>=,<=,in,notin,list)。

2、配置该事件源,在符合规则情况下,需要执行的服务和通知的方式(邮件、短信、语音、钉钉群)。

3、规则服务订阅计算队列,根据规则匹配结果进行过滤,对符合规则的消息,在此基础上封装对应的执行服务和通知方式为一条新消息,写入规则队列。

五、推送服务模块

通知服务订阅规则队列,根据消息上封装的执行服务的规则,调用服务,并根据通知方式,以及通知模板,进行变量替换,完成通知推送。

本发明为了满足快速变化的业务需求,以及提高应用系统的灵活性,将事件的处理拆分成多个功能独立的服务,通过采用消息的触发传递方式,做到了各服务之间完全的解耦,各服务均可以独立分布式部署,同时依据各服务的实际负载可以实现动态扩缩容。同时引入规则匹配引擎,将业务规则从程序代码中分离出来,规则通过界面配置产生,根据业务需求实时变化,保证事件处理的高效和便捷,以支撑快速变化的业务需求。

以上所述仅为本发明的较佳实施例而已,为方便本领域的技术人员更容易理解而设计,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。


技术特征:

1.一种基于规则匹配的事件处理方法,其特征在于,包括:

步骤一、接入服务,配置事件源对应的接入规则,选择接入方式,对各种不同类型的事件,采用统一的方式接收并写入接入队列;

步骤二、切分服务,订阅接入队列,根据事件源对应的切分规则进行消息的切分、清洗,将消息内容格式化key-value键值对,写入切分队列;

步骤三、计算服务,订阅切分队列,根据事件对应的计算规则,对该事件消息进行关联计算,消息内容富化,将计算结果和切分消息组合成一条更完整的新事件消息,写入计算队列;

步骤四、规则服务,订阅计算队列,根据事件对应的字段匹配规则、服务调用和通知规则,过滤掉不符合匹配规则的事件消息,对符合匹配规则的事件消息,在源事件消息的基础上,附带上执行服务调用和通知方式的规则封装为一条新消息,写入规则队列;

步骤五、通知服务,订阅规则队列,读取匹配事件消息,根据事件消息附带的执行服务的规则,调用服务,并根据通知方式,以及通知模板,进行变量替换,完成通知推送。

2.如权利要求1所述的方法,其特征在于,所述步骤一中,支持的接入方式有http、tcp和udp。

3.如权利要求1所述的方法,其特征在于,所述步骤二中,支持的切分模式有json模式、分隔符模式、自定义方法模式。

4.如权利要求1所述的方法,其特征在于,所述步骤三中,所述计算规则为支持任何基于restful的服务的计算函数。

5.如权利要求1所述的方法,其特征在于,所述步骤四中,所述规则包括逻辑规则:and,or,not,in,或比较规则:=,!=,>,<,>=,<=,in,notin,list。

6.如权利要求1所述的方法,其特征在于,所述步骤五中,推送通知方式包括邮件、短信、语音、钉钉群。

7.一种基于规则匹配的事件处理系统,其特征在于,包括:

接入服务模块,配置事件源对应的接入规则,选择接入方式,对各种不同类型的事件,采用统一的方式接收并写入接入队列;

切分服务模块,订阅接入队列,根据事件源对应的切分规则进行消息的切分、清洗,将消息内容格式化key-value键值对,写入切分队列;

计算服务模块,订阅切分队列,根据事件对应的计算规则,对该事件消息进行关联计算,消息内容富化,将计算结果和切分消息组合成一条更完整的新事件消息,写入计算队列;

规则服务模块,订阅计算队列,根据事件对应的字段匹配规则、服务调用和通知规则,过滤掉不符合匹配规则的事件消息,对符合匹配规则的事件消息,在源事件消息的基础上,附带上执行服务调用和通知方式的规则封装为一条新消息,写入规则队列;

通知服务模块,订阅规则队列,读取匹配事件消息,根据事件消息附带的执行服务的规则,调用服务,并根据通知方式,以及通知模板,进行变量替换,完成通知推送。

8.如权利要求7所述的系统,其特征在于,所述接入服务模块中,支持的接入方式有http、tcp和udp。

9.如权利要求7所述的系统,其特征在于,所述切分服务模块中,支持的切分模式有json模式、分隔符模式、自定义方法模式。

10.如权利要求7所述的系统,其特征在于,所述计算服务模块中,所述计算规则为支持任何基于restful的服务的计算函数。

11.如权利要求7所述的系统,其特征在于,所述规则服务模块中,所述规则包括逻辑规则:and,or,not,in,或比较规则:=,!=,>,<,>=,<=,in,notin,list。

12.如权利要求7所述的系统,其特征在于,所述通知服务模块中,推送通知方式包括邮件、短信、语音、钉钉群。

技术总结
一种基于规则匹配的事件处理方法及系统,包括:事件接入服务,配置事件源对应的接入规则,通过调用接口完成事件的接入;事件切分服务,订阅源消息,按照规则进行消息的切分、清洗和入库;计算服务,订阅切分消息,根据计算规则,调用对应的计算服务,将返回结果和源切分消息组合成一条新消息,按照入库规则进行操作;规则匹配服务,订阅计算消息,根据规则进行过滤,对满足条件的消息,封装对应的执行动作和推送方式,写入消息;推送服务,配置订阅的规则消息对应的消息模板、选择模板中需要变量替换的字段以及接收人。

技术研发人员:冯勇;熊昌伟
受保护的技术使用者:畅捷通信息技术股份有限公司
技术研发日:2019.12.31
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-55360.html

最新回复(0)