CN114978993B - 一种基于标签表达式计算的消息路由方法及电子设备 - Google Patents
一种基于标签表达式计算的消息路由方法及电子设备 Download PDFInfo
- Publication number
- CN114978993B CN114978993B CN202210453926.0A CN202210453926A CN114978993B CN 114978993 B CN114978993 B CN 114978993B CN 202210453926 A CN202210453926 A CN 202210453926A CN 114978993 B CN114978993 B CN 114978993B
- Authority
- CN
- China
- Prior art keywords
- message
- label
- expression
- rule
- calculation
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于标签表达式计算的消息路由方法及电子设备,所述消息路由方法包括以下步骤:获取由消息发送端发送的初始消息,该初始消息包括消息数据和与该消息数据对应的基础标签;基于所述基础标签,利用标签规则引擎进行路由规则匹配,对所述消息数据添加辅助标签,形成转发消息,转发至接收端;所述标签规则引擎中维护有以数学表达式保存的消息处理规则及其匹配的消息处理方式,在规则匹配成功后,基于所述消息处理方式生成对应的辅助标签。与现有技术相比,本发明具有简单、能够提高运维效率等优点。
Description
技术领域
本发明涉及一种消息通讯方法,尤其是涉及一种基于标签表达式计算的消息路由方法及电子设备。
背景技术
随着业务系统的复杂度不断增加,不同的系统不断地产生各种监控预警信息,很多企业接入了Zabbix、Prometheus、Open Falcon以及自研的各种监控或业务系统以满足对消息的监控。为了统一管理及方便运维的角度,需要将不同系统产生的各种消息就行汇总、清洗、格式整理等,同时对不同的消息做不同的转发和处理。
由于各个监控系统复杂度不一致,采用的技术结构也不一致,目前对各个系统进行定制开发都不是很容易,需要投入大量的人力研究框架以进行二次开发。而消息事件处理的逻辑大部分都是一样的,每个系统进行重复功能的开发也是资源的一种浪费。
因此,如何对不同系统的消息进行高效处理是本领域亟待解决的技术问题。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种简单、能够提高运维效率的基于标签表达式计算的消息路由方法及电子设备。
本发明的目的可以通过以下技术方案来实现:
一种基于标签表达式计算的消息路由方法,包括以下步骤:
获取由消息发送端发送的初始消息,该初始消息包括消息数据和与该消息数据对应的基础标签;
基于所述基础标签,利用标签规则引擎进行路由规则匹配,对所述消息数据添加辅助标签,形成转发消息,转发至接收端;
所述标签规则引擎中维护有以数学表达式保存的消息处理规则及其匹配的消息处理方式,在规则匹配成功后,基于所述消息处理方式生成对应的辅助标签。
进一步地,所述基础标签包括消息来源、消息等级和消息分类。
进一步地,所述数学表达式通过界面选择或直接录入生成。
进一步地,所述路由规则匹配具体为:
基于所述基础标签构建标签hashmap;
以逆波兰表达式算法为基础,基于所维护的消息处理规则,结合所述标签hashmap对变量取值进行匹配计算,若计算结果为true,则认为规则匹配,对所述消息数据进行对应的逻辑处理,若计算结果为false,则忽略该消息处理规则。
进一步地,所述匹配计算具体为:
基于运算符列表切分所述消息处理规则的数学表达式,形成规则中缀表达式数组,并转换为后缀表达式数组,依次弹出所述后缀表达式数组中的元素进行计算,若弹出的元素为变量字符,则结合所述标签hashmap对该变量取对应的标签值,以该标签值进行计算,最终计算出整个标签匹配表达式的结果。
进一步地,基于运算符优先级将所述规则中缀表达式数组转换为后缀表达式数组。
进一步地,所述逻辑处理包括整形、规范、清洗、派发、扩充和/或收敛。
进一步地,至少对所述消息数据添加一次辅助标签。
本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行如上所述的消息路由方法。
本发明还提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如上所述的消息路由方法。
与现有技术相比,本发明具有以下有益效果:
1、本发明的路由方法通过消息标签及规则匹配的方式实现消息路由,可以统一汇集所有的消息事件,通过设计统一可配置的消息事件路由规则,可方便对不同的事件配置对应的处理逻辑。在事件属性标签化后,再结合该表达式解析规则,大部分的消息事件可直接通过配置各种规则直接达到最后的目标,无需再额外定制开发,提高工作效率。
2、本发明可基于标签数学表达式定义消息处理规则,不同的监控或业务系统只需按简单规范接入消息中心即可,无需付出额外的人力对每个系统进行定制开发。
3、本发明以逆波兰表达式算法为基础,结合标签hashmap对变量取值进行匹配计算,计算方式简单可靠,能够快速获得匹配结果,提高消息路由效率。
4、使用本发明路由方法后,运维人员可以将更多的时间将各种消息匹配规则和消息处理方式进行组合,以搭积木的方式实现消息转发,提高运维效率。
附图说明
图1为消息中心数据流向及处理图;
图2为标签规则引擎的数据匹配流程图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本实施例以本发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
本实施例提供一种基于标签表达式计算的消息路由方法,包括以下步骤:获取由消息发送端发送的初始消息,该初始消息包括消息数据和与该消息数据对应的基础标签,如消息来源、消息等级和消息分类;基于所述基础标签,利用标签规则引擎进行路由规则匹配,对所述消息数据添加辅助标签,形成转发消息,转发至接收端。
如图1所示,本实施例中,该方法由消息中心实现,不同系统连接入消息中心,标签规则引擎设置于消息中心中,标签规则引擎中维护有以数学表达式保存的消息处理规则及其匹配的消息处理方式,其中,数学表达式可以通过界面选择或直接录入生成,在规则匹配成功后,基于所述消息处理方式生成对应的辅助标签。
上述方法涉及以下两个创新设计:
1、设计基础标签体系及辅助标签体系。这些标签是事件路由的基础,在每次事件处理和转发过程中都可以附加标签。
标签分为基础及辅助标签。消息中心提供接口供各个第三方系统接入,第三方系统通过接口提交数据到消息中心时会附加默认基础标签,如消息的来源,消息等级,消息分类等。消息中心接收到消息后,利用标签规则引擎进行规则匹配,额外再附加各种辅助标签,扩充消息内容。再将消息交由下一规则引擎做后续处理,最终一条消息事件会附加上各种标签,经过各种规则路由后被派发给对应的接收或处理人员。
2、设计一种标签规则引擎。系统用户可自行定义消息的标签匹配规则,根据规则引擎的处理逻辑,将不同的消息将导向不同的处理方式。
标签规则引擎是这套方案的基础。每一条消息处理规则定义了消息标签消息匹配的逻辑以及匹配后的处理方式(整形、规范、派生、压缩、派发等)。作为这个匹配规则的核心,系统会定义一套标签表达式解析引擎,用户通过界面选择或直接录入消息标签匹配的数学表达式,由该解析引擎直接解析表达式匹配路由规则。
标签规则引擎实现路由规则匹配的具体包括:
1)定义标签hashmap,将消息所有的标签都计入该hashmap。
2)解析规则引擎:以逆波兰表达式(后缀表达式)算法为基础,结合标签hashmap对变量取值进行匹配计算,计算方式和过程如下:
首先定义标签运算符号[(,),==,!=,&&,||]并设定运算符优先级,以该运算符列表为基础生成正则解析规则,直接切分标签匹配的数学表达式;
基于运算符优先级将切分后的规则中缀表达式数组转换为后缀表达式数组。按后缀表达式的算法逻辑依次弹出数组中的元素进行计算,若弹出的元素为变量字符,则需要结合上述的标签hashmap对该变量取对应的标签值,以该标签值进行计算。最终可计算出整个标签匹配表达式的结果,若整个表达式的计算结果为true,则认为规则匹配,需进行对应的逻辑处理如消息清洗、派发等,若匹配结果为false,则忽略该规则,无需进行额外处理。
参考图1所示,业务系统发出事件消息,通过接口传送给消息中心,消息中心收到消息后经过规则引擎对消息进行多次路由匹配及加工,最后将消息落地并发给相应的接收人员。本实施例以一个实际场景消息为例介绍图2所示的数据匹配流程:
在Open Falcon中,通过接口向消息中心发送一条带基础标签的事件消息:
mysql_cpu{instance=10.56.1.14:3306,project=paas_falcon,service=mysql,priority=20,value=90}
此时在消息中心有一条规则为:
(project=='paas_falcon'&&priority!=20)||service=='mysql'
规则引擎会将该表达式转换成中缀表达式数组:
[(,project,==,'paas_falcon',&&,priority,!=,20,),||,service,==,'mysql'],
再结合运算符优先级,将该数组转换为后缀表达式数组:
[project,'paas_falcon',==,priority,20,!=,&&,service,'mysql',==,||],
最后再结合消息里的标签信息,计算时带入project、priority、service等变量,计算规则匹配结果,匹配成功后,触发告警消息发送,将该消息发送给对应责任人。
在上述实例中可以看到,消息匹配规则是可以灵活定制的,用户无需针对每一种特殊业务都额外开发出来流程,只需设定匹配的路由规则即可。
上述方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在另一实施例中,提供一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如上所述的消息路由方法。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。
Claims (10)
1.一种基于标签表达式计算的消息路由方法,其特征在于,包括以下步骤:
获取由消息发送端发送的初始消息,该初始消息包括消息数据和与该消息数据对应的基础标签;
基于所述基础标签,利用标签规则引擎进行路由规则匹配,对所述消息数据添加辅助标签,形成转发消息,转发至接收端;
所述标签规则引擎中维护有以数学表达式保存的消息处理规则及其匹配的消息处理方式,在规则匹配成功后,基于所述消息处理方式生成对应的辅助标签。
2.根据权利要求1所述的基于标签表达式计算的消息路由方法,其特征在于,所述基础标签包括消息来源、消息等级和消息分类。
3.根据权利要求1所述的基于标签表达式计算的消息路由方法,其特征在于,所述数学表达式通过界面选择或直接录入生成。
4.根据权利要求1所述的基于标签表达式计算的消息路由方法,其特征在于,所述路由规则匹配具体为:
基于所述基础标签构建标签hashmap;
以逆波兰表达式算法为基础,基于所维护的消息处理规则,结合所述标签hashmap对变量取值进行匹配计算,若计算结果为true,则认为规则匹配,对所述消息数据进行对应的逻辑处理,若计算结果为false,则忽略该消息处理规则。
5.根据权利要求4所述的基于标签表达式计算的消息路由方法,其特征在于,所述匹配计算具体为:
基于运算符列表切分所述消息处理规则的数学表达式,形成规则中缀表达式数组,并转换为后缀表达式数组,依次弹出所述后缀表达式数组中的元素进行计算,若弹出的元素为变量字符,则结合所述标签hashmap对该变量取对应的标签值,以该标签值进行计算,最终计算出整个标签匹配表达式的结果。
6.根据权利要求5所述的基于标签表达式计算的消息路由方法,其特征在于,基于运算符优先级将所述规则中缀表达式数组转换为后缀表达式数组。
7.根据权利要求4所述的基于标签表达式计算的消息路由方法,其特征在于,所述逻辑处理包括整形、规范、清洗、派发、扩充和/或收敛。
8.根据权利要求1所述的基于标签表达式计算的消息路由方法,其特征在于,至少对所述消息数据添加一次辅助标签。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行如权利要求1-8任一项所述的消息路由方法。
10.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-8任一项所述的消息路由方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210453926.0A CN114978993B (zh) | 2022-04-24 | 2022-04-24 | 一种基于标签表达式计算的消息路由方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210453926.0A CN114978993B (zh) | 2022-04-24 | 2022-04-24 | 一种基于标签表达式计算的消息路由方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114978993A CN114978993A (zh) | 2022-08-30 |
CN114978993B true CN114978993B (zh) | 2023-08-08 |
Family
ID=82980140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210453926.0A Active CN114978993B (zh) | 2022-04-24 | 2022-04-24 | 一种基于标签表达式计算的消息路由方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114978993B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550305B (zh) * | 2022-09-28 | 2024-03-01 | 深圳市凯迪仕智能科技股份有限公司 | 设备控制方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752315A (zh) * | 2012-07-25 | 2012-10-24 | 烽火通信科技股份有限公司 | 一种灵活适应ims系统业务标签的业务解析方法 |
CN105847153A (zh) * | 2016-03-25 | 2016-08-10 | 迈普通信技术股份有限公司 | 一种报文转发方法及网络设备 |
CN106302167A (zh) * | 2016-08-08 | 2017-01-04 | 广州唯品会信息科技有限公司 | 路由控制方法及装置 |
CN107645401A (zh) * | 2016-07-22 | 2018-01-30 | 中兴通讯股份有限公司 | 多协议标签交换的检测、处理方法、装置及系统 |
CN111628930A (zh) * | 2020-05-25 | 2020-09-04 | 河南群智信息技术有限公司 | 一种基于标签的中药材种植监测信息重路由方法 |
CN111724063A (zh) * | 2020-06-19 | 2020-09-29 | 上海商汤智能科技有限公司 | 一种业务数据处理方法及装置、电子设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8811388B2 (en) * | 2008-11-14 | 2014-08-19 | Rockstar Consortium Us Lp | Service instance applied to MPLS networks |
US10193801B2 (en) * | 2013-11-25 | 2019-01-29 | Juniper Networks, Inc. | Automatic traffic mapping for multi-protocol label switching networks |
-
2022
- 2022-04-24 CN CN202210453926.0A patent/CN114978993B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102752315A (zh) * | 2012-07-25 | 2012-10-24 | 烽火通信科技股份有限公司 | 一种灵活适应ims系统业务标签的业务解析方法 |
CN105847153A (zh) * | 2016-03-25 | 2016-08-10 | 迈普通信技术股份有限公司 | 一种报文转发方法及网络设备 |
CN107645401A (zh) * | 2016-07-22 | 2018-01-30 | 中兴通讯股份有限公司 | 多协议标签交换的检测、处理方法、装置及系统 |
CN106302167A (zh) * | 2016-08-08 | 2017-01-04 | 广州唯品会信息科技有限公司 | 路由控制方法及装置 |
CN111628930A (zh) * | 2020-05-25 | 2020-09-04 | 河南群智信息技术有限公司 | 一种基于标签的中药材种植监测信息重路由方法 |
CN111724063A (zh) * | 2020-06-19 | 2020-09-29 | 上海商汤智能科技有限公司 | 一种业务数据处理方法及装置、电子设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
陈继明 ; 邹志文 ; 潘金贵 ; 翟磊 ; .基于自动机的XML路由改进算法.江苏大学学报(自然科学版).2010,(06),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN114978993A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111726248A (zh) | 一种告警根因定位方法及装置 | |
CN111835760B (zh) | 报警信息处理方法及装置、计算机存储介质、电子设备 | |
CN110069495A (zh) | 数据存储方法、装置和终端设备 | |
CN114978993B (zh) | 一种基于标签表达式计算的消息路由方法及电子设备 | |
Chen et al. | A cut-based method for terminal-pair reliability | |
CN103138981A (zh) | 一种社交网络分析方法和装置 | |
CN112667476B (zh) | 基于任务的消息过滤方法、装置、设备及存储介质 | |
CN110795315A (zh) | 监控业务的方法和装置 | |
Ren et al. | Parallel ABox Reasoning of Ontologies | |
CN116127400B (zh) | 基于异构计算的敏感数据识别系统、方法及存储介质 | |
CN113242357A (zh) | 基于智能语音呼叫的物流信息处理方法、装置和介质 | |
CN112597752A (zh) | 投诉文本的处理方法、装置、电子设备及存储介质 | |
CN111930783A (zh) | 监控方法、监控系统及计算设备 | |
CN116708217A (zh) | 一种数据中心设备监控方法、系统、电子设备及存储介质 | |
CN113343315B (zh) | 可插拔组件协议信息的安全验证方法、装置、设备及介质 | |
CN114756301B (zh) | 日志处理方法、装置和系统 | |
CN115328457A (zh) | 基于参数配置的表单页面实现方法和装置 | |
CN111211938B (zh) | 生物信息软件监控系统及方法 | |
CN115018624A (zh) | 基于风控策略的决策引擎及方法 | |
CN113342865A (zh) | 一种报销单审批查询方法和系统 | |
CN114546780A (zh) | 数据监控方法、装置、设备、系统及存储介质 | |
CN114121217A (zh) | 一种手术室调度方法、装置、设备及存储介质 | |
CN113347045A (zh) | 一种告警消息处理方法及装置 | |
JPH08328648A (ja) | 監視制御システム | |
CN104252661A (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 |