本发明专利技术公开了一种处理消息的方法、装置、计算机设备及存储介质,所述方法包括:从消息中间件的消费者端获取所有订阅表达式;分别获取每个订阅表达式的分组属性信息;将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,并分别为每个订阅分组设置对应的分组属性信息和守护线程;接收来自所述生产者端的目标消息,并根据所述目标消息的属性信息和各个订阅分组的分组属性信息确定出与所述目标消息相匹配的目标订阅分组;将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息;本发明专利技术提高了消息队列对生产者端生产的消息的分发速度,还减少了守护线程的数量,节约了线程资源。资源。资源。
【技术实现步骤摘要】
一种处理消息的方法、装置、计算机设备及存储介质
[0001]本专利技术涉及研发过程优化
,特别涉及一种处理消息的方法、装置、计算机设备及存储介质。
技术介绍
[0002]在现有的消费模型中,消息中间件的消费者列表中存在多个消费者实例,且一个消费者实例可以包含多条订阅表达式,以满足消费者对各种类型的消息进行订阅。在开发过程中,技术人员需要为每条订阅表达式配置一条守护线程,用于获取生产者生产的消息中符合目标订阅表达式的消息,但只需要为一个消费者实例配置一条工作线程,用于对接收的消息进行实例化操作。当守护线程接收到一条符合目标订阅表达式的消息时,通知工作线程对接收到的消息进行实例化操作,此时只有目标订阅表达式对应的守护线程在执行守护该工作线程的操作,而该消费者实例中的其它订阅表达式的守护线程属于闲置状态,这样导致了大量线程资源的浪费。因此,在现有技术中存在处理生产者端生产的消息时浪费守护线程资源的技术问题。
技术实现思路
[0003]本专利技术的目的在于提供一种处理消息的方法、装置、计算机设备及存储介质,能够提高消息队列对生产者端生产的消息的分发速度,减少守护线程的数量,节约线程资源。
[0004]根据本专利技术的一个方面,提供了一种处理消息的方法,该方法包括如下步骤:
[0005]从消息中间件的消费者端获取所有订阅表达式;其中,所述订阅表达式用于订阅由所述消息中间件的生产者端生产的消息;
[0006]分别获取每个订阅表达式的分组属性信息;其中,所述分组属性信息包括:订阅消息的主题、订阅消息的传播形式、表达式类型;
[0007]将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,并分别为每个订阅分组设置对应的分组属性信息和守护线程;
[0008]接收来自所述生产者端的目标消息,并根据所述目标消息的属性信息和各个订阅分组的分组属性信息确定出与所述目标消息相匹配的目标订阅分组;
[0009]将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息。
[0010]可选的,所述将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,具体包括:
[0011]将表达式类型为规则表达式以及订阅消息的传播形式为单播形式的订阅表达式聚类到第一集合中;
[0012]将表达式类型为规则表达式以及订阅消息的传播形式为广播形式的订阅表达式聚类到第二集合中;
[0013]将表达式类型为标签以及订阅消息的传播形式为单播形式的订阅表达式聚类到
第三集合中;
[0014]将订阅表达式类型为标签以及订阅消息的传播形式为广播形式的订阅表达式聚类到第四集合中;
[0015]分别在每个集合中,将订阅消息的主题相同的订阅表达式聚类到对应集合的一个订阅分组中。
[0016]可选的,所述接收来自所述生产者端的目标消息,并根据所述目标消息的属性信息和各个订阅分组的分组属性信息确定出与所述目标消息相匹配的目标订阅分组,具体包括:
[0017]从所述目标消息的属性信息中解析出消息主题、消息传播形式和类型信息;其中,所述类型信息为标签或规则表达式;
[0018]将所述目标消息的消息主题、消息传播形式和类型信息与各个订阅分组的分组属性信息进行逐一匹配,以确定出目标订阅分组。
[0019]可选的,所述将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息,具体包括:
[0020]当所述目标消息的类型信息为标签时,判断在所述目标订阅分组中是否存在目标订阅表达式,其中,所述目标消息包含所述目标订阅表达式,若是,则将所述目标消息发送至与所述目标订阅分组对应的目标守护线程;或,
[0021]当所述目标消息的类型信息为规则表达式时,判断在所述目标订阅分组中是否存在所述目标消息所满足的订阅表达式,若是,则将所述目标消息发送至与所述目标订阅分组对应的目标守护线程。
[0022]可选的,在所述将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,并分别为每个订阅分组设置对应的分组属性信息和守护线程之后,所述方法还包括:
[0023]从所有订阅分组中筛选出规则订阅分组;其中,规则订阅分组的分组属性信息中表达式类型均为规则表达式;
[0024]从目标规则订阅分组的各个订阅表达式中解析出变量参数项,并将解析出的所有变量参数项构成所述目标规则订阅分组的变量集合。
[0025]可选的,所述将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息,具体包括:
[0026]当所述目标消息的类型信息为规则表达式时,判断在所述目标消息中是否包含所述目标订阅分组的变量集合中的任一变量参数项,
[0027]若是,则当所述目标消息满足与所述变量参数项对应的订阅表达式时,将所述目标消息发送至与所述目标订阅分组对应的目标守护线程。
[0028]可选的,所述判断在所述目标消息中是否包含所述目标订阅分组的变量集合中的任一变量参数项,若是,则当所述目标消息满足与所述变量参数项对应的订阅表达式时,将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,具体包括:
[0029]当所述目标消息的类型信息为规则表达式时,从所述目标消息的消息内容中解析出目标变量和目标变量值;
[0030]使用所述目标变量与所述目标订阅分组中的变量集合进行比对,得到与所述目标变量对应的变量参数项,并获取与所述变量参数项对应的目标订阅表达式;
[0031]将所述目标消息的目标变量值代入所述目标订阅表达式的变量参数项位置,以计算得到所述目标订阅表达式的计算结果;
[0032]当所述计算结果是否为真时将所述目标消息发送至与所述目标订阅分组对应的目标守护线程。
[0033]为了实现上述目的,本专利技术还提供一种处理消息的方法的装置,该装置具体包括以下组成部分:
[0034]获取模块,用于从消息中间件的消费者端获取所有订阅表达式;其中,所述订阅表达式用于订阅由所述消息中间件的生产者端生产的消息;
[0035]属性模块,用于分别获取每个订阅表达式的分组属性信息;其中,所述分组属性信息包括:订阅消息的主题、订阅消息的传播形式、表达式类型;
[0036]分组模块,用于将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,并分别为每个订阅分组设置对应的分组属性信息和守护线程;
[0037]匹配模块,用于接收来自所述生产者端的目标消息,并根据所述目标消息的属性信息和各个订阅分组的分组属性信息确定出与所述目标消息相匹配的目标订阅分组;
[0038]发送模块,用于将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息。
[0039]为了实现上述目的,本专利技术还提供一种计算机设备,该计算机设备具体包括:存储器、处理器以及存储在所述存储器上并可在所述处本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种处理消息的方法,其特征在于,所述方法包括:从消息中间件的消费者端获取所有订阅表达式;其中,所述订阅表达式用于订阅由所述消息中间件的生产者端生产的消息;分别获取每个订阅表达式的分组属性信息;其中,所述分组属性信息包括:订阅消息的主题、订阅消息的传播形式、表达式类型;将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,并分别为每个订阅分组设置对应的分组属性信息和守护线程;接收来自所述生产者端的目标消息,并根据所述目标消息的属性信息和各个订阅分组的分组属性信息确定出与所述目标消息相匹配的目标订阅分组;将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息。2.根据权利要求1所述的处理消息的方法,其特征在于,所述将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,具体包括:将表达式类型为规则表达式以及订阅消息的传播形式为单播形式的订阅表达式聚类到第一集合中;将表达式类型为规则表达式以及订阅消息的传播形式为广播形式的订阅表达式聚类到第二集合中;将表达式类型为标签以及订阅消息的传播形式为单播形式的订阅表达式聚类到第三集合中;将订阅表达式类型为标签以及订阅消息的传播形式为广播形式的订阅表达式聚类到第四集合中;分别在每个集合中,将订阅消息的主题相同的订阅表达式聚类到对应集合的一个订阅分组中。3.根据权利要求1所述的处理消息的方法,其特征在于,所述接收来自所述生产者端的目标消息,并根据所述目标消息的属性信息和各个订阅分组的分组属性信息确定出与所述目标消息相匹配的目标订阅分组,具体包括:从所述目标消息的属性信息中解析出消息主题、消息传播形式和类型信息;其中,所述类型信息为标签或规则表达式;将所述目标消息的消息主题、消息传播形式和类型信息与各个订阅分组的分组属性信息进行逐一匹配,以确定出目标订阅分组。4.根据权利要求3所述的处理消息的方法,其特征在于,所述将所述目标消息发送至与所述目标订阅分组对应的目标守护线程,以通过所述目标守护线程处理所述目标消息,具体包括:当所述目标消息的类型信息为标签时,判断在所述目标订阅分组中是否存在目标订阅表达式,其中,所述目标消息包含所述目标订阅表达式,若是,则将所述目标消息发送至与所述目标订阅分组对应的目标守护线程;或,当所述目标消息的类型信息为规则表达式时,判断在所述目标订阅分组中是否存在所述目标消息所满足的订阅表达式,若是,则将所述目标消息发送至与所述目标订阅分组对应的目标守护线程。
5.根据权利要求4所述的处理消息的方法,其特征在于,在所述将具有相同分组属性信息的订阅表达式聚类到一个订阅分组中,并分别为每个订阅分组设置对应的分组属性信息和守护线程之后,所述方法还包括:从所有订阅分组中...
【专利技术属性】
技术研发人员:卢俊杰,
申请(专利权)人:平安养老保险股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。