CN115794445A - 一种基于flink和规则表达式的数据处理方法、装置及设备 - Google Patents
一种基于flink和规则表达式的数据处理方法、装置及设备 Download PDFInfo
- Publication number
- CN115794445A CN115794445A CN202310064279.9A CN202310064279A CN115794445A CN 115794445 A CN115794445 A CN 115794445A CN 202310064279 A CN202310064279 A CN 202310064279A CN 115794445 A CN115794445 A CN 115794445A
- Authority
- CN
- China
- Prior art keywords
- rule
- processing
- message
- key
- engine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于flink和规则表达式的数据处理方法、装置及设备,该方法包括:通过规则表达式语言jexl规则配置器配置处理规则,将处理规则固化到规则库;当消息处理引擎启动时,通过规则缓存管理器将规则库加载到消息处理引擎的内存中,消息处理引擎在flink流式处理框架提供的基础运行环境中运行;将从数据源获取的消息报文与内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据处理规则的优先级,将消息报文匹配成功的处理规则生成一条完整的规则链;确定规则链中每一条处理规则对应的处理机方法;确定处理机方法对应的处理步骤,根据处理步骤对报文进行处理;将处理后的消息报文传输至外部系统。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种基于flink和规则表达式的数据处理方法、装置及设备。
背景技术
在应用程序编程接口(Application Programming Interface,API)网关注册的API接口的调用/计费信息,需要根据其调用请求/调用返回,并结合API提供者所定义的计费规则/例外规则进行单次掉用的计费逻辑判断,由于API的请求和返回,以及不同API提供者的计费规则/例外规则不尽相同,因此判断逻辑往往需要持续开发,导致支撑规则库的代码过于庞大,工程的管理和代码的迭代存在风险。
发明内容
本发明提供了一种基于flink和规则表达式的数据处理方法、装置及设备,解决了如何高效管理、适配API计费规则的技术问题。
一种基于flink和规则表达式的数据处理方法,包括:
通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库;
当消息处理引擎启动时,通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
将从数据源获取的消息报文与所述内存中的处理规则进行匹配;
若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;
确定所述规则链中每一条处理规则对应的处理机方法;
确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
将处理后的消息报文传输至外部系统。
在本发明的一种实施例中,所述通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库,具体包括:通过表达式语言jexl规则配置器对处理规则进行可视化配置或后台配置;根据样例报文对配置的所述处理规则进行校验;将通过校验后的处理规则固化到规则库中。
在本发明的一种实施例中,在根据样例报文对配置的所述处理规则进行校验后,所述方法还包括:根据通过校验后的处理规则生成处理规则通知;根据所述处理规则通知生成操作信号,将所述操作信号传输到动物园管理员zookeeper。
在本发明的一种实施例中,所述zookeeper中定义有多个键key,每个key对应不同规则或不同的管理命令;zookeeper接收来自jexl规则配置器的操作信号,根据所述操作信号触发zookeeper中特定规则key和管理命令key的状态变更。
在本发明的一种实施例中,在通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中之后,所述方法还包括:循环监听zookeeper;当监听到所述zookeeper中特定规则key和管理命令key的状态变更时,热更新所述消息处理引擎的jexl规则匹配器;重新监听所述zookeeper中的特定规则key和管理命令key的状态。
在本发明的一种实施例中,所述根据所述操作信号触发zookeeper中特定规则key和管理命令key的状态变更,具体包括:根据所述操作信号触发特定规则key,按照key对应的规则主键,重新拉取规则库中的规则配置,并更新、删除或弃用指定的规则定义;或根据所述操作信号触发管理命令key,重新加载全量和切换规则版本。
在本发明的一种实施例中,所述根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链,具体包括:根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则按照所述优先级由高到低的顺序生成一条完整的规则链;其中,在根据所述优先级进行处理的过程中,前面优先级高的处理规则对应的处理结果作为后面优先级低的处理规则的处理条件。
在本发明的一种实施例中,所述处理机方法包括基于结构化数据的方法、表达式规则填充的方法和通过远程过程调用RPC判断的方法。
在本发明的一种实施例中,所述基于结构化数据的方法具体包括:根据处理机规则ID匹配出数据库的查询方法;以所述消息报文的原始字段为条件,应用所述查询方法,将得到的处理结果输出到所述消息报文。
在本发明的一种实施例中,所述表达式规则填充的方法具体包括:根据所述消息报文匹配处理机中的表达式,根据所述表达式得出对应的处理结果。
在本发明的一种实施例中,所述通过RPC判断的方法具体包括:将所述消息报文转发到RPC提供者,当接收到RPC提供者的处理结果后,消息再次发送到引擎的消息队列。
一种基于flink和规则表达式的数据处理装置,包括:
jexl规则配置模块,用于配置处理规则,将所述处理规则固化到规则库;
规则缓存管理模块,用于当消息处理引擎启动时,将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
消息处理引擎,用于将从数据源获取的消息报文与所述内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;确定所述规则链中每一条处理规则对应的处理机方法;确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
消息分发模块,用于将处理后的消息报文传输至外部系统。
在本发明的一种实施例中,所述规则缓存管理模块还包括:监听子模块,用于循环监听zookeeper;当监听到所述zookeeper中特定规则key和管理命令key的状态变更时,热更新所述消息处理引擎的jexl规则匹配器;重新监听所述zookeeper中的特定规则key和管理命令key的状态。
一种基于flink和规则表达式的数据处理设备,包括:
至少一个处理器;以及,
与所述至少一个处理器通过总线通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被执行,以实现:
通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库;
当消息处理引擎启动时,通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
将从数据源获取的消息报文与所述内存中的处理规则进行匹配;
若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;
确定所述规则链中每一条处理规则对应的处理机方法;
确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
将处理后的消息报文传输至外部系统。
一种非易失性存储介质,存储有计算机可执行指令,所述计算机可执行指令由处理器执行,以实现下述步骤:
通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库;
当消息处理引擎启动时,通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
将从数据源获取的消息报文与所述内存中的处理规则进行匹配;
若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;
确定所述规则链中每一条处理规则对应的处理机方法;
确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
将处理后的消息报文传输至外部系统。
本发明提供了一种基于flink和规则表达式的数据处理方法、装置及设备,至少包括以下有益效果:本发明基于实时流式消息处理引擎flink,对接上游动态类型JSON数据的消息队列,基于jexl规则引擎,对数据进行动态处理,决定每个API调用行为是否计费,是否例外等情况。jexl规则引擎通过可视化界面或后台配置的形式,固化到规则库。规则库加载到消息处理引擎,并交由zookeeper进行监听watch,实现了规则的热配置,热生效,热卸载,热更新等操作,从而实现规则适配引擎的低代码开发和高效管理,而针对需要送至开发的处理过程,通过RPC调节解耦,也在一定程度上保证了引擎的灵活性。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明实施例提供的一种基于flink和规则表达式的数据处理方法步骤示意图;
图2为本发明实施例提供的基于配置的处理规则进行数据处理流程图;
图3为本发明实施例提供的消息处理引擎对消息报文进行处理的具体流程图;
图4为本发明实施例提供的一种基于flink和规则表达式的数据处理装置示意图;
图5为本发明实施例提供的一种基于flink和规则表达式的数据处理设备示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例对本发明进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本领域普通技术人员显式地和隐式地理解的是,本发明所描述的实施例在不冲突的情况下,可以与其它实施例相结合。除非另作定义,本发明所涉及的技术术语或者科学术语应当为本发明所属技术领域内具有一般技能的人士所理解的通常意义。本发明所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本发明所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;本发明所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本发明的目的在于提供一种基于高可用,可弹性扩展的流式框架(flink),采用规则表达式(jexl)定义处理规则,并采用zookeeper监听实现对这些规则的热管理,实现对上游动态类型的JSON数据的处理,校验,判断,以及对下游分发。下面进行具体说明。
图1为本发明实施例提供的一种基于flink和规则表达式的数据处理方法的步骤示意图,可以包括以下步骤:
S110:通过规则表达式语言jexl规则配置器配置处理规则,将处理规则固化到规则库。
具体地,如图2所示为本申请实施例提供的基于配置的规则进行数据处理流程图,基于流式计算和规则表达式的数据消息处理引擎,由flink流式处理框架,jexl规则配置器,规则缓存管理器,消息处理引擎,消息分发器组成。flink流式处理框架用于提供引擎的基础运行环境,并支持引擎的高可用,扩缩容以及版本管理。jexl规则配置器,将jexl规则进行可视化配置,并支持样例报文触发校验,在最简部署实施环境可进行无界面后台操作。规则缓存管理器用于在引擎启动/重启和规则热加载触发命令下达时进行结构化规则数据加载。消息处理引擎用于实际落实对某些规则的处理。消息分发器用于根据处理后的消息体,按照可热配置的规则进行消息转发。
在本发明的一种实施例中,通过规则表达式语言jexl规则配置器配置处理规则,将处理规则固化到规则库,具体包括:通过表达式语言jexl规则配置器对处理规则进行可视化配置或后台配置;根据样例报文对配置的处理规则进行校验;将通过校验后的处理规则固化到规则库中。
具体地,通过jexl规则配置器,将jexl处理规则进行可视化配置,并通过处理规则校验器支持样例报文触发校验,已保证配置的处理规则能够匹配,在最简部署实施环境可进行无界面后台操作,将校验后的处理规则固化到规则库。
在本发明的一种实施例中,在根据样例报文对配置的处理规则进行校验后,根据通过校验后的处理规则生成处理规则通知;根据处理规则通知生成操作信号,将操作信号传输到动物园管理员zookeeper。
具体地,处理规则变化后,为了能够及时更新消息处理引擎中的规则进行匹配,在配置完成后通过jexl规则配置器向zookeeper发送操作通知,以告知消息处理引擎进行规则更新。zookeeper是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。zookeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
S120:当消息处理引擎启动时,通过规则缓存管理器将规则库加载到消息处理引擎的内存中,消息处理引擎在flink流式处理框架提供的基础运行环境中运行。
在本发明的一种实施例中,zookeeper中定义有多个键key,每个key对应不同规则或不同的管理命令;zookeeper接收来自jexl规则配置器的操作信号,根据操作信号触发zookeeper中特定规则key和管理命令key的状态变更。
具体地,zookeeper接收到来自jexl规则配置器的操作信号,触发zookeeper特定规则key以及管理命令key的状态变更。
在本发明的一种实施例中,在通过规则缓存管理器将规则库加载到消息处理引擎的内存中之后,循环监听zookeeper;当监听到zookeeper中特定规则key和管理命令key的状态变更时,热更新消息处理引擎的jexl规则匹配器;重新监听zookeeper中的特定规则key和管理命令key的状态。
具体地,规则缓存管理器作为消息处理引擎的组件,不单独运行。当消息处理引擎启动时,缓存将规则库加载到内存;规则缓存管理器监听zookeeper的多个建key,这些key对应不同规则,或者不同的管理命令;当jexl规则配置器发出了操作信号,将触发zookeeper特定规则key以及管理命令key的状态变更;规则缓存管理器根据key的变更,热更新引擎的jexl规则匹配器;规则缓存管理器重新循环监听key。
在本发明的一种实施例中,根据操作信号触发zookeeper中特定规则key和管理命令key的状态变更,具体包括:根据操作信号触发特定规则key,按照key对应的规则主键,重新拉取规则库中的规则配置,并更新、删除或弃用指定的规则定义;或根据操作信号触发管理命令key,重新加载全量和切换规则版本。
具体地,规则key的触发:按照key对应的规则主键,重新拉取数据库中的规则配置,并更新/删除/弃用指定的规则定义
管理命令key的触发:重新加载全量,用于新增规则;切换规则版本,用于整体版本的热升级降级。
S130:将从数据源获取的消息报文与内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据处理规则的优先级,将消息报文匹配成功的处理规则生成一条完整的规则链;确定规则链中每一条处理规则对应的处理机方法;确定处理机方法对应的处理步骤,根据处理步骤对报文进行处理。
在本发明的一种实施例中,根据处理规则的优先级,将消息报文匹配成功的处理规则生成一条完整的规则链,具体包括:根据处理规则的优先级,将消息报文匹配成功的处理规则按照优先级由高到低的顺序生成一条完整的规则链;其中,在根据优先级进行处理的过程中,前面优先级高的处理规则对应的处理结果作为后面优先级低的处理规则的处理条件。
具体地,如图3所示为本发明实施例提供的消息处理引擎对消息报文进行处理的具体流程图。通过上游API调用记录消息队列中获取,通过消息处理引擎中的jexl规则引擎进行规则匹配,消息报文可以匹配多条处理规则,若匹配到,这些处理规则具有优先级,根据优先级的大小组成一条完成整的规则链;匹配出的多条处理规则,在根据优先级处理的过程中,前面的处理结果,可以作为后面处理过程的条件;每一条处理规则,对应一种处理机方法,按照需求映射处理规则。
在本发明的一种实施例中,处理机方法包括基于结构化数据的方法、表达式规则填充的方法和通过远程过程调用RPC判断的方法。
具体地,处理机方法包括结构化数据填充的方法,表达式规则处理的方法,RPC调用判断的方法。
在本发明的一种实施例中,基于结构化数据的方法具体包括:根据处理机规则ID匹配出数据库的查询方法;以消息报文的原始字段为条件,应用查询方法,将得到的处理结果输出到消息报文。
具体地,基于结构化数据的数据特性:
①字典类匹配,少量非易变数据,但需要动态变更枚举类型。
②资源配置类匹配,大量周期性变动数据,需要定期更新。
基于结构化数据的方法实现方式:
①jexl规则引擎结论为结构化数据处理机。
②根据处理机规则ID,对应出数据库的查询方法。
③以报文原始字段为条件,应用查询方法,查询结果输出到报文。
在本发明的一种实施例中,表达式规则填充的方法具体包括:根据消息报文匹配处理机中的表达式,根据表达式得出对应的处理结果。
具体地,表达式规则填充的数据特性:
①规则固定,判断字段简单。
②适用于一大类数据的判断。
③一般用于规则链的末端,基于上游处理机的数据填充进行结论输出。
表达式规则填充的方法实现方式:
①jexl规则引擎结论为表达式规则填充。
②报文适配,处理机中的表达式(区别于jexl规则引擎的规则表达式),得出处理结果。
在本发明的一种实施例中,通过RPC判断的方法具体包括:将消息报文转发到RPC提供者,当接收到RPC提供者的处理结果后,消息再次发送到引擎的消息队列。
具体地,远程调用判断的数据特性:
①API提供厂商具有定制的业务逻辑,且业务具有周期性变化规律,比如,节假日计费规则,特定优惠期计费规则,套内/外计费规则等。
②业务逻辑不适合固化在本系统/引擎。
③数据接口不易变。
④此接口需要定制开发。
远程调用判断的方法实现方式:
①jexl规则引擎结论为远程调用判断。
②同步方式:用于低吞吐/低频调用,但依然对RPC服务的吞吐量有较高要求。处理流程:消息调用后,等待消息的返回。
③异步方式:用于高吞吐下的调用,异步处理流程如下:
1)发起调用后,消息本次流转终止。
2)RPC服务提供者得到报文,并处理完成后,消息再次发送到引擎的消息队列,一般经过RPC服务处理的消息已经是最终的结果,再发引擎仅为统一留痕和统一外发,一般不进行规则匹配。
S140:将处理后的消息报文传输至外部系统。
具体地,在依据处理机方法处理完成后的报文通过引擎统一留痕信息生成,记录消息报文的处理,通过消息分发器转发到外部系统,异步留痕后转发下游。
本发明基于实时流式消息处理引擎flink,对接上游动态类型JSON数据的消息队列,基于jexl规则引擎,对数据进行动态处理,决定每个API调用行为是否计费,是否例外等情况。
jexl规则引擎通过可视化界面或后台配置的形式,固化到规则库。规则库加载到消息处理引擎,并交由zookeeper进行监听watch,实现规则的热配置,热生效,热卸载,热更新等操作,从而实现规则适配引擎的低代码开发和高效管理,而针对需要送至开发的处理过程,通过RPC调节解耦,也在一定程度上保证了引擎的灵活性。
以上为本发明实施例提供的一种基于flink和规则表达式的数据处理方法,基于同样的发明思路,本发明实施例还提供了相应的一种基于flink和规则表达式的数据处理装置,如图4所示。
一种基于flink和规则表达式的数据处理装置,包括:
jexl规则配置模块401,用于配置处理规则,将处理规则固化到规则库;规则缓存管理模块402,用于当消息处理引擎启动时,将规则库加载到消息处理引擎的内存中,消息处理引擎在flink流式处理框架提供的基础运行环境中运行;消息处理引擎403,用于将从数据源获取的消息报文与内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据处理规则的优先级,将消息报文匹配成功的处理规则生成一条完整的规则链;确定规则链中每一条处理规则对应的处理机方法;确定处理机方法对应的处理步骤,根据处理步骤对报文进行处理;消息分发模块404,用于将处理后的消息报文传输至外部系统。
在本发明的一种实施例中,规则缓存管理模块还包括:监听子模块4031,用于循环监听zookeeper;当监听到zookeeper中特定规则key和管理命令key的状态变更时,热更新消息处理引擎的jexl规则匹配器;重新监听zookeeper中的特定规则key和管理命令key的状态。
本发明实施例还提供了相应的一种基于flink和规则表达式的数据处理设备,如图5所示。
本实施例提供了一种基于flink和规则表达式的数据处理设备,包括:
至少一个处理器501;以及,与至少一个处理器501通过总线503通信连接的存储器502;其中,存储器502存储有可被至少一个处理器执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行:
通过规则表达式语言jexl规则配置器配置处理规则,将处理规则固化到规则库;当消息处理引擎启动时,通过规则缓存管理器将规则库加载到消息处理引擎的内存中,消息处理引擎在flink流式处理框架提供的基础运行环境中运行;将从数据源获取的消息报文与内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据处理规则的优先级,将消息报文匹配成功的处理规则生成一条完整的规则链;确定规则链中每一条处理规则对应的处理机方法;确定处理机方法对应的处理步骤,根据处理步骤对报文进行处理;将处理后的消息报文传输至外部系统。
基于同样的思路,本发明的一些实施例还提供了上述方法对应的介质。
本发明的一些实施例提供的一种存储介质,存储有计算机可执行指令,计算机可执行指令由处理器执行,以实现下述步骤:
通过规则表达式语言jexl规则配置器配置处理规则,将处理规则固化到规则库;当消息处理引擎启动时,通过规则缓存管理器将规则库加载到消息处理引擎的内存中,消息处理引擎在flink流式处理框架提供的基础运行环境中运行;将从数据源获取的消息报文与内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据处理规则的优先级,将消息报文匹配成功的处理规则生成一条完整的规则链;确定规则链中每一条处理规则对应的处理机方法;确定处理机方法对应的处理步骤,根据处理步骤对报文进行处理;将处理后的消息报文传输至外部系统。
本发明中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备和介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例提供的设备和介质与方法是一一对应的,因此,设备和介质也具有与其对应的方法类似的有益技术效果,由于上面已经对方法的有益技术效果进行了详细说明,因此,这里不再赘述设备和介质的有益技术效果。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程方法商品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程方法商品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程方法商品或者方法中还存在另外的相同要素。
以上仅为本发明的实施例而已,并不用于限制本发明。虽然,上文中已经用一般性说明及具体实施方案对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (15)
1.一种基于flink和规则表达式的数据处理方法,其特征在于,包括:
通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库;
当消息处理引擎启动时,通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
将从数据源获取的消息报文与所述内存中的处理规则进行匹配;
若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;
确定所述规则链中每一条处理规则对应的处理机方法;
确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
将处理后的消息报文传输至外部系统。
2.根据权利要求1所述的方法,其特征在于,所述通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库,具体包括:
通过表达式语言jexl规则配置器对处理规则进行可视化配置或后台配置;
根据样例报文对配置的所述处理规则进行校验;
将通过校验后的处理规则固化到规则库中。
3.根据权利要求2所述的方法,其特征在于,在根据样例报文对配置的所述处理规则进行校验后,所述方法还包括:
根据通过校验后的处理规则生成处理规则通知;
根据所述处理规则通知生成操作信号,将所述操作信号传输到动物园管理员zookeeper。
4.根据权利要求3所述的方法,其特征在于,所述zookeeper中定义有多个键key,每个key对应不同规则或不同的管理命令;
zookeeper接收来自jexl规则配置器的操作信号,根据所述操作信号触发zookeeper中特定规则key和管理命令key的状态变更。
5.根据权利要求1所述的方法,其特征在于,在通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中之后,所述方法还包括:
循环监听zookeeper;
当监听到所述zookeeper中特定规则key和管理命令key的状态变更时,热更新所述消息处理引擎的jexl规则匹配器;
重新监听所述zookeeper中的特定规则key和管理命令key的状态。
6.根据权利要求4所述的方法,其特征在于,所述根据所述操作信号触发zookeeper中特定规则key和管理命令key的状态变更,具体包括:
根据所述操作信号触发特定规则key,按照key对应的规则主键,重新拉取规则库中的规则配置,并更新、删除或弃用指定的规则定义;或
根据所述操作信号触发管理命令key,重新加载全量和切换规则版本。
7.根据权利要求1所述的方法,其特征在于,所述根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链,具体包括:
根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则按照所述优先级由高到低的顺序生成一条完整的规则链;
其中,在根据所述优先级进行处理的过程中,前面优先级高的处理规则对应的处理结果作为后面优先级低的处理规则的处理条件。
8.根据权利要求1所述的方法,其特征在于,所述处理机方法包括基于结构化数据的方法、表达式规则填充的方法和通过远程过程调用RPC判断的方法。
9.根据权利要求8所述的方法,其特征在于,所述基于结构化数据的方法具体包括:
根据处理机规则ID匹配出数据库的查询方法;
以所述消息报文的原始字段为条件,应用所述查询方法,将得到的处理结果输出到所述消息报文。
10.根据权利要求8所述的方法,其特征在于,所述表达式规则填充的方法具体包括:
根据所述消息报文匹配处理机中的表达式,根据所述表达式得出对应的处理结果。
11.根据权利要求8所述的方法,其特征在于,所述通过RPC判断的方法具体包括:
将所述消息报文转发到RPC提供者,当接收到RPC提供者的处理结果后,消息再次发送到引擎的消息队列。
12.一种基于flink和规则表达式的数据处理装置,其特征在于,包括:
jexl规则配置模块,用于配置处理规则,将所述处理规则固化到规则库;
规则缓存管理模块,用于当消息处理引擎启动时,将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
消息处理引擎,用于将从数据源获取的消息报文与所述内存中的处理规则进行匹配;若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;确定所述规则链中每一条处理规则对应的处理机方法;确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
消息分发模块,用于将处理后的消息报文传输至外部系统。
13.根据权利要求12所述的装置,其特征在于,所述规则缓存管理模块还包括:
监听子模块,用于循环监听zookeeper;当监听到所述zookeeper中特定规则key和管理命令key的状态变更时,热更新所述消息处理引擎的jexl规则匹配器;重新监听所述zookeeper中的特定规则key和管理命令key的状态。
14.一种基于flink和规则表达式的数据处理设备,其特征在于,包括:
至少一个处理器;以及,
与所述至少一个处理器通过总线通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被执行,以实现:
通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库;
当消息处理引擎启动时,通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
将从数据源获取的消息报文与所述内存中的处理规则进行匹配;
若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;
确定所述规则链中每一条处理规则对应的处理机方法;
确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
将处理后的消息报文传输至外部系统。
15.一种非易失性存储介质,存储有计算机可执行指令,其特征在于,所述计算机可执行指令由处理器执行,以实现下述步骤:
通过规则表达式语言jexl规则配置器配置处理规则,将所述处理规则固化到规则库;
当消息处理引擎启动时,通过规则缓存管理器将所述规则库加载到所述消息处理引擎的内存中,所述消息处理引擎在flink流式处理框架提供的基础运行环境中运行;
将从数据源获取的消息报文与所述内存中的处理规则进行匹配;
若确定有匹配成功的处理规则,则根据所述处理规则的优先级,将所述消息报文匹配成功的处理规则生成一条完整的规则链;
确定所述规则链中每一条处理规则对应的处理机方法;
确定所述处理机方法对应的处理步骤,根据所述处理步骤对所述报文进行处理;
将处理后的消息报文传输至外部系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310064279.9A CN115794445B (zh) | 2023-02-06 | 2023-02-06 | 一种基于flink和规则表达式的数据处理方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310064279.9A CN115794445B (zh) | 2023-02-06 | 2023-02-06 | 一种基于flink和规则表达式的数据处理方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115794445A true CN115794445A (zh) | 2023-03-14 |
CN115794445B CN115794445B (zh) | 2023-07-04 |
Family
ID=85429875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310064279.9A Active CN115794445B (zh) | 2023-02-06 | 2023-02-06 | 一种基于flink和规则表达式的数据处理方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115794445B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955427A (zh) * | 2023-09-18 | 2023-10-27 | 北京长亭科技有限公司 | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060109857A1 (en) * | 2004-11-19 | 2006-05-25 | Christian Herrmann | System, method and computer program product for dynamically changing message priority or message sequence number in a message queuing system based on processing conditions |
US20180276962A1 (en) * | 2015-05-01 | 2018-09-27 | Intamac Systems Limited | Monitoring and automation systems, and related methods |
CN110019651A (zh) * | 2019-03-01 | 2019-07-16 | 广州亚美信息科技有限公司 | 一种流式规则引擎及业务数据处理方法 |
CN111444291A (zh) * | 2020-03-27 | 2020-07-24 | 上海爱数信息技术股份有限公司 | 一种基于流处理引擎和规则引擎的实时数据告警方法 |
US20200356548A1 (en) * | 2019-05-09 | 2020-11-12 | Mastercard International Incorporated | Methods and systems for facilitating message format discovery in online transaction processing |
CN112261101A (zh) * | 2020-10-15 | 2021-01-22 | 四川长虹电器股份有限公司 | Mqtt消息中心引入规则引擎的方法 |
US11269939B1 (en) * | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
CN114443178A (zh) * | 2021-12-01 | 2022-05-06 | 天翼电子商务有限公司 | 一种基于flink cep的规则引擎 |
CN115185613A (zh) * | 2022-08-15 | 2022-10-14 | 康键信息技术(深圳)有限公司 | 基于规则引擎的业务规则配置方法、系统、设备及介质 |
CN115221010A (zh) * | 2022-09-20 | 2022-10-21 | 北京中安星云软件技术有限公司 | 一种基于Flink的审计日志规则匹配方法及系统 |
CN115567370A (zh) * | 2022-11-10 | 2023-01-03 | 广州信安数据有限公司 | 基于实时事件数据的自动化告警方法、存储介质及系统 |
-
2023
- 2023-02-06 CN CN202310064279.9A patent/CN115794445B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060109857A1 (en) * | 2004-11-19 | 2006-05-25 | Christian Herrmann | System, method and computer program product for dynamically changing message priority or message sequence number in a message queuing system based on processing conditions |
US20180276962A1 (en) * | 2015-05-01 | 2018-09-27 | Intamac Systems Limited | Monitoring and automation systems, and related methods |
US11269939B1 (en) * | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
CN110019651A (zh) * | 2019-03-01 | 2019-07-16 | 广州亚美信息科技有限公司 | 一种流式规则引擎及业务数据处理方法 |
US20200356548A1 (en) * | 2019-05-09 | 2020-11-12 | Mastercard International Incorporated | Methods and systems for facilitating message format discovery in online transaction processing |
CN111444291A (zh) * | 2020-03-27 | 2020-07-24 | 上海爱数信息技术股份有限公司 | 一种基于流处理引擎和规则引擎的实时数据告警方法 |
CN112261101A (zh) * | 2020-10-15 | 2021-01-22 | 四川长虹电器股份有限公司 | Mqtt消息中心引入规则引擎的方法 |
CN114443178A (zh) * | 2021-12-01 | 2022-05-06 | 天翼电子商务有限公司 | 一种基于flink cep的规则引擎 |
CN115185613A (zh) * | 2022-08-15 | 2022-10-14 | 康键信息技术(深圳)有限公司 | 基于规则引擎的业务规则配置方法、系统、设备及介质 |
CN115221010A (zh) * | 2022-09-20 | 2022-10-21 | 北京中安星云软件技术有限公司 | 一种基于Flink的审计日志规则匹配方法及系统 |
CN115567370A (zh) * | 2022-11-10 | 2023-01-03 | 广州信安数据有限公司 | 基于实时事件数据的自动化告警方法、存储介质及系统 |
Non-Patent Citations (1)
Title |
---|
纪佩宇;印杰;武旭红;: "面向物联网的大数据预警信息高速处理规则引擎" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116955427A (zh) * | 2023-09-18 | 2023-10-27 | 北京长亭科技有限公司 | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 |
CN116955427B (zh) * | 2023-09-18 | 2023-12-15 | 北京长亭科技有限公司 | 一种基于Flink框架的实时多规则动态表达式数据处理方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115794445B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11316800B2 (en) | Method and system for managing applications | |
CN107832100B (zh) | 一种apk插件的加载方法及其终端 | |
US8910138B2 (en) | Hot pluggable extensions for access management system | |
WO2023093429A1 (zh) | 微应用的运行方法、装置、设备、存储介质及程序产品 | |
WO2023185166A1 (zh) | 服务调用方法、装置、设备及存储介质 | |
CN108874825B (zh) | 一种异常数据的校验方法和装置 | |
CN115794445A (zh) | 一种基于flink和规则表达式的数据处理方法、装置及设备 | |
CN113806037A (zh) | 服务的调用方法、装置、存储介质及电子设备 | |
CN112433863A (zh) | 微服务调用方法、装置、终端设备以及存储介质 | |
CN113190282A (zh) | 安卓运行环境构建的方法及装置 | |
CN110888658A (zh) | 应用程序中功能模块的动态化方法、装置及存储介质 | |
CN110138753B (zh) | 分布式消息服务系统、方法、设备及计算机可读存储介质 | |
CN108664343B (zh) | 一种微服务的有状态调用方法及装置 | |
CN113010238A (zh) | 一种微应用调用接口的权限确定方法、装置和系统 | |
CN113407823A (zh) | 一种ios消息推送方法及系统 | |
CN109005465B (zh) | 弹幕消息分发方法、装置、设备及存储介质 | |
CN109144676A (zh) | 一种应用程序的自启动检测方法、装置及服务器 | |
CN116567094A (zh) | 一种基于微服务系统的服务信息处理方法 | |
CN111324481A (zh) | 一种Linux平台的修复方法及装置 | |
US20090037493A1 (en) | Method and device for updating an object with copyright attribute | |
CN110389791B (zh) | 组件调度方法、装置、设备及存储介质 | |
CN114625410A (zh) | 一种请求消息处理方法、装置及设备 | |
CN114374657A (zh) | 一种数据处理方法和装置 | |
CN113590178A (zh) | Api实例的管理方法、装置、存储介质及电子设备 | |
CN108572832B (zh) | 应用版本动态更新的方法及其系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |