一种消息分发方法及装置与流程

文档序号:30726206发布日期:2022-07-13 01:38阅读:118来源:国知局
一种消息分发方法及装置与流程

1.本技术涉及计算机领域,尤其涉及一种消息分发方法及装置。


背景技术:

2.消息分发方法广泛应用在各系统间通信场景,消息分发机制大多根据各目的队列的负载情况,以及各个消息的优先级情况实现消息转发。当系统与外系统仅通过一个消息队列通信,且系统需要实现同城双活或多活建设、灰度环境搭建、新老系统异构双活等情况时,需要增加消息分发机制隔离各个子消息队列,针对消息实现业务级别的拆分,使消息按照对应的业务逻辑分发至子消息队列,保证各个系统在业务级别上的隔离。因此,本领域急需一种可以更精确的消息分发方法,实现业务级别的消息分发。


技术实现要素:

3.为了解决上述技术问题,本技术提供了一种消息分发方法及装置,用于精确地进行消息分发,实现业务级别的消息分发。
4.为了实现上述目的,本技术实施例提供的技术方案如下:
5.本技术实施例提供一种消息分发方法,包括:
6.从消息队列中获得目标消息;
7.将目标消息与第一预设规则进行匹配,第一预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围;
8.当目标消息与第一预设规则匹配时,将目标消息分发至第一预设规则对应的目标队列。
9.可选地,目标消息包括消息头和消息体,将目标消息与第一预设规则进行匹配,包括:
10.将目标消息的消息头与第一预设规则进行匹配。
11.可选地,还包括:
12.当目标消息与第一预设规则不匹配时,将目标消息与第二预设规则匹配,第二预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围;
13.当目标消息与第二预设规则匹配时,将目标消息分发至第二预设规则对应的目标队列。
14.可选地,标签字段规则包括标签字段、截取位数和截取位数的区间;
15.截取位数指示目标消息的标签字段中的待确认字符的位数;截取位数区间指示待确认字符对应的数字所在的区间。
16.可选地,截取位数包括目标消息的标签字段中的n个待确认字符的位数;截取位数区间包括n个待多个确认字符对应的数字所在的区间,n为正整数。
17.可选地,第一预设规则包括第一子规则、第二子规则和逻辑运算规则;逻辑运算规则包括逻辑与运算、逻辑或运算和逻辑非运算中的至少一种。
18.可选地,还包括:
19.当目标消息与第二预设规则不匹配时,将目标消息分发至预设队列,或将目标消息丢弃。
20.根据上述的消息分发方法,本技术实施例还提供了一种消息分发装置,包括:
21.获得模块,用于从消息队列中获得目标消息;
22.第一匹配模块,用于将目标消息与第一预设规则进行匹配,第一预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围;
23.第一分发模块,用于当目标消息与第一预设规则匹配时,将目标消息分发至第一预设规则对应的目标队列。
24.可选地,还包括:
25.第二匹配模块,用于当目标消息与第一预设规则不匹配时,将目标消息与第二预设规则匹配,第二预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围;
26.第二分发模块,用于当目标消息与第二预设规则匹配时,将目标消息分发至第二预设规则对应的目标队列。
27.可选地,标签字段规则包括标签字段、截取位数和截取位数的区间;
28.截取位数指示目标消息的标签字段中的待确认字符的位数;截取位数区间指示待确认字符对应的数字所在的区间。
29.通过上述技术方案可知,本技术具有以下有益效果:
30.本技术实施例提供了一种消息分发方法,包括:从消息队列中获得目标消息;将目标消息与第一预设规则进行匹配,第一预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围;当目标消息与第一预设规则匹配时,将目标消息分发至第一预设规则对应的目标队列。
31.由此可知,本技术实施例提供的消息分发方法,通过预设包含消息类型规则和标签字段规则的预设规则,然后根据预设规则对目标消息进行分发可以实现较为精确的消息分发。而且本技术实施例通过字符对应的数字的取值范围可以对标签字段中的字符进行较为精准的识别,实现了细粒度的业务级别的消息分发。
附图说明
32.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为本技术实施例提供的一种消息分发方法的示意图;
34.图2为本技术实施例提供的一种消息分发方法的示意图;
35.图3为本技术实施例提供的一种目标消息的示意图;
36.图4为本技术实施例提供的一种预设规则的示意图;
37.图5为本技术实施例提供的另一种消息分发方法的流程图;
38.图6为本技术实施例提供的一种消息分发装置的示意图。
具体实施方式
39.为了帮助更好地理解本技术实施例提供的方案,在介绍本技术实施例提供的方法之前,先介绍本技术实施例方案的应用的场景。
40.消息分发方法广泛应用在各系统间通信场景,消息分发机制大多根据各目的队列的负载情况,以及各个消息的优先级情况实现消息转发。当系统与外系统仅通过一个消息队列通信,且系统需要实现同城双活或多活建设、灰度环境搭建、新老系统异构双活等情况时,需要增加消息分发机制隔离各个子消息队列,针对消息实现业务级别的拆分,使消息按照对应的业务逻辑分发至子消息队列,保证各个系统在业务级别上的隔离。因此,本领域急需一种可以更精确的消息分发方法,实现业务级别的消息分发。
41.为了解决上述的技术问题,本技术实施例提供了一种消息分发方法,包括:从消息队列中获得目标消息;将所述目标消息与第一预设规则进行匹配,所述第一预设规则包括消息类型规则和标签字段规则;所述消息类型规则指示所述目标消息的消息类型,所述标签字段规则指示所述目标消息的标签字段中字符对应的数字的取值范围;当所述目标消息与所述第一预设规则匹配时,将所述目标消息分发至所述第一预设规则对应的目标队列。
42.由此可知,本技术实施例提供的消息分发方法,通过预设包含消息类型规则和标签字段规则的预设规则,然后根据预设规则对目标消息进行分发可以实现较为精确的消息分发。而且本技术实施例通过字符对应的数字的取值范围可以对标签字段中的字符进行较为精准的识别,实现了细粒度的业务级别的消息分发。
43.为使本技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本技术实施例作进一步详细的说明。
44.参见图1,该图为本技术实施例提供的一种消息分发方法的示意图。
45.如图1所示,本技术实施例提供的消息分发方法包括:
46.s101:从消息队列中获得目标消息。
47.s102:将所述目标消息与第一预设规则进行匹配,所述第一预设规则包括消息类型规则和标签字段规则;所述消息类型规则指示所述目标消息的消息类型,所述标签字段规则指示所述目标消息的标签字段中字符对应的数字的取值范围。
48.s103:当所述目标消息与所述第一预设规则匹配时,将所述目标消息分发至所述第一预设规则对应的目标队列。
49.需要说明的是,本技术实施例中的消息队列为消息的分发系统发送消息的队列。本技术实施例中的字符可以为字母、符号、数字等字符,本技术实施例在此不做限定。当字符为字母或符号时,本技术实施例所提供的方法可以通过预设的字母或符号与数字的映射关系,获得字符对应的数字,例如字母a可以对应数字12。
50.参见图2,该图为本技术实施例提供的一种消息分发方法的示意图。如图2所示,本技术实施例所提供的方法可以应用于消息分发装置,消息分发装置将消息的分发系统发送
32内。如图3所示,目标消息中包括“《msgid》346273469238461430934678《/msgid》”,标签字段msgid中的第20位字符和第21位字符分别为“3”和“4”,不在截取位数区间81-99内,也不在区间25-32内,因此目标消息不符合该标签规则。
62.对于同一种消息类型,本技术通过多层级节点配置获取对应子节点的属性,使用感叹号“!”表示取反操作,例如“!1026”标识id不是1026的目标消息符合该规则。本技术还可以使用中括号表示对属性截取的位数,使用大括号和短横线表示该属性的取值范围。节点中使用符号“|”表示或运算组合多种规则,不同消息类型之间使用逻辑或符号“||”组合多种规则,消息只要符合其中任意一条规则,即可分发消息至对应子队列。下面还提供了3个示例来对本技术实施例提供的预设规则进行介绍。
63.例一:配置为@mesgtype(类型1)qryinf/orgid([20,22]{81-99,{00-10}}),本发明针对消息类型为类型1的消息,获取节点qryinf的子节点orgid内容,并截取其中20和21位子串进行匹配,如果该字串位于81-99的闭区间或00-10的闭区间内,将该消息分发至对应的目的队列。
[0064]
例二:配置为@mesgtype(类型2)othr/id(!1026)grphdr/addtlinf(类型3|类型4),本发明针对消息类型为类型2消息文,获取节点othr的子节点id,如果id不是1026且节点grphdr中子节点addtlinf是类型3或类型4时,将该消息分发到对应的目的队列。
[0065]
示例三:目标消息配置为@mesgtype(类型1)qryinf/orgid([20,22]{81-99})||@mesgtype(类型2)othr/id(!1026)grphdr/addtlinf(类型3|类型4),通过组合例一与例二规则,实现配置级别的逻辑或运算,如果满足例一或例二规则,将该消息分发到对应的目的队列。
[0066]
参见图5,该图为本技术实施例提供的另一种消息分发方法的流程图。
[0067]
本技术实施例提供的方法,先从消息队列中获得目标消息,然后将目标消息与分发规则1(第一预设规则)进行匹配。作为一个示例,分发规则1中可能存在多个子规则,每个子规则中可能包括标签字段规则和\或消息类型规则。如图5所示,分发规则1中包括第一子规则和第二子规则,第一子规则和第二自规则之间的关系为逻辑或。第一子规则包括“消息类型为type1”、“子节点1符合规则”和“子节点n符合规则”等。当目标消息符合第一子规则中的所有规则时,目标消息将被分发至目的队列1。当目标消息与第一子规则中的任意规则不匹配时,将目标消息与第二子规则进行匹配。第二子规则包括“消息类型为type2”、“子节点1符合规则”和“子节点n符合规则”等。当目标消息符合第二子规则中的所有规则时,目标消息将被分发至目的队列1。
[0068]
当目标消息与第一子规则和第二子规则都不匹配时,则判断目标消息与分发规则1(第一预设规则)不匹配。将目标消息与分发规则2(第二预设规则)进行匹配。如果目标消息与分发规则2匹配,则将目标消息分发至分发消息2对应的目标队列(目的队列2)。如果目标消息与分发规则2也不匹配,那么则将目标消息与其他的预设规则进行匹配。当目标消息与所有的预设规则都不匹配,则可以将目标消息分发至默认队列,或将目标消息丢弃,本技术实施例在此不做限定。
[0069]
综上所述,本技术实施例提供的消息分发方法,通过预设包含消息类型规则和标签字段规则的预设规则,然后根据预设规则对目标消息进行分发可以实现较为精确的消息分发。而且本技术实施例通过字符对应的数字的取值范围可以对标签字段中的字符进行较
为精准的识别,实现了细粒度的业务级别的消息分发。
[0070]
根据上述实施例提供的消息分发方法,本技术实施例还提供了一种消息分发装置。
[0071]
参见图6,该图为本技术实施例提供的一种消息分发装置的示意图。
[0072]
如图6所示,本技术实施例提供的一种消息分发装置,包括:
[0073]
获得模块100,用于从消息队列中获得目标消息。
[0074]
第一匹配模块200,用于将目标消息与第一预设规则进行匹配,第一预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围。
[0075]
第一分发模块300,用于当目标消息与第一预设规则匹配时,将目标消息分发至第一预设规则对应的目标队列。
[0076]
作为一种可能的实施方式,本技术实施例提供的消息分发装置,还包括:第二匹配模块,用于当目标消息与第一预设规则不匹配时,将目标消息与第二预设规则匹配,第二预设规则包括消息类型规则和标签字段规则;消息类型规则指示目标消息的消息类型,标签字段规则指示目标消息的标签字段中字符对应的数字的取值范围;第二分发模块,用于当目标消息与第二预设规则匹配时,将目标消息分发至第二预设规则对应的目标队列。
[0077]
作为一种可能的实施方式,标签字段规则包括标签字段、截取位数和截取位数的区间;截取位数指示目标消息的标签字段中的待确认字符的位数;截取位数区间指示待确认字符对应的数字所在的区间。
[0078]
综上所述,本技术实施例提供的消息分发装置,通过预设包含消息类型规则和标签字段规则的预设规则,然后根据预设规则对目标消息进行分发可以实现较为精确的消息分发。而且本技术实施例通过字符对应的数字的取值范围可以对标签字段中的字符进行较为精准的识别,实现了细粒度的业务级别的消息分发。
[0079]
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如媒体网关等网络通信设备,等等)执行本技术各个实施例或者实施例的某些部分所述的方法。
[0080]
需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。
[0081]
还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0082]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术对
这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1