消息队列的处理方法、装置及设备与流程

文档序号:20922683 发布日期:2020-05-29 14:51
消息队列的处理方法、装置及设备与流程

本发明涉及互联网技术领域,尤其是一种消息队列的处理方法、装置及设备。



背景技术:

随着互联网的不断发展与进步,一些新技术也不断涌现,消息队列(messagequeue,mq)随着微服务的出现在开发过程中广泛使用,扮演着很重要的角色。

目前,现有的消息对列(如rabbitmq,zeromq,activemq,redis,kafka,rocketmq等)大多数都追求的是高吞吐量,以及消息发送与接收的速度。并且为了防止数据的丢失,在消息队列接收到消息时,会对消息进行持久化处理。

然而,如果消息队列接收过多的消息时,会增加消息队列的处理压力,可能会出现性能的下降。持久化不能及时的进行,可能导致数据的丢失。



技术实现要素:

本发明所要解决的一个技术问题是目前现有技术中如果消息队列接收过多的消息时,会增加消息队列的处理压力,可能会出现性能的下降。持久化不能及时的进行,可能导致数据丢失的技术问题。

根据本发明的一个方面,提供了一种消息队列的处理方法,该方法包括:

接收待进入消息队列的消息数据;

确定所述消息数据各自对应的消息价值等级;

根据所述消息价值等级和消息队列的当前状态信息,从所述消息数据中筛选出符合预设条件的消息数据存入消息队列。

可选的,所述确定所述消息数据各自对应的消息价值等级,具体包括:

根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

可选的,所述根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级,具体包括:

通过预设机器学习模型根据所述反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

可选的,所述方法还包括:

从所述反馈记录信息中,获取不同历史消息数据发送后相关业务的业务活跃度;

获取所述不同历史消息数据分别对应的消息特征信息;

创建模型训练集,所述模型训练集中包含不同的消息特征信息,以及与不同消息特征信息的消息数据发送后分别对应的业务活跃度;

利用所述模型训练集,训练得到所述预设机器学习模型。

可选的,所述通过预设机器学习模型根据所述反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级,具体包括:

提取当前待进入消息队列的目标消息数据的目标消息特征信息;

将所述目标消息特征信息输入到所述预设机器学习模型进行计算,输出与所述目标消息特征信息匹配度最高的消息特征信息所对应的业务活跃度;

按照输出的所述业务活跃度,确定所述目标消息数据对应的消息价值等级。

可选的,所述根据所述消息价值等级和消息队列的当前状态信息,从所述消息数据中筛选出符合预设条件的消息数据存入消息队列,具体包括:

若所述目标消息数据对应的消息价值等级小于或等于第一预设等级阈值,则将所述目标消息数据进行筛除;

若消息队列的当前状态信息符合预设繁忙状态标准,且所述目标消息数据对应的消息价值等级大于所述第一预设等级阈值、且小于或等于第二预设等级阈值,则将所述目标消息数据进行筛除;

若所述目标消息数据对应的消息价值等级大于所述第二预设等级阈值,则将所述目标消息数据进行保留。

可选的,在所述确定所述消息数据各自对应的消息价值等级之前,所述方法还包括:

利用预设关键词,对所述消息数据进行消息内容过滤;

所述确定所述消息数据各自对应的消息价值等级,具体包括:

确定过滤后的消息数据各自对应的消息价值等级。

可选的,根据所述消息价值等级和消息队列的当前状态信息,从所述消息数据中筛选出符合预设条件的消息数据存入消息队列,具体包括:

根据所述消息数据中目标消息数据的消息类型,确定目标消息数据对应待进入的目标消息队列,其中不同的消息类型都有各自对应类型的消息队列;

若根据目标消息数据对应的消息价值等级和所述目标消息队列的当前状态信息,判定目标消息数据符合所述预设条件,则将目标消息数据存入所述目标消息队列。

可选的,所述方法还包括:

定时或不定时清理所述消息队列中存入的过期消息数据;

从所述消息队列中提取未过期的、且通过安全校验的消息数据并触发进行相应发送。

可选的,所述方法还包括:

获取所述消息数据对应的监控信息;

将所述监控信息发送给对应的消息发送方。

根据本发明的另一方面,提供了一种消息队列的处理装置,该装置包括:

接收模块,用于接收待进入消息队列的消息数据;

确定模块,用于确定所述消息数据各自对应的消息价值等级;

存储模块,用于根据所述消息价值等级和消息队列的当前状态信息,从所述消息数据中筛选出符合预设条件的消息数据存入消息队列。

可选的,所述确定模块,具体用于根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

可选的,所述确定模块,具体还用于通过预设机器学习模型根据所述反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

可选的,所述装置还包括:

获取模块,用于从所述反馈记录信息中,获取不同历史消息数据发送后相关业务的业务活跃度;

获取模块,用于获取所述不同历史消息数据分别对应的消息特征信息;

创建模块,用于创建模型训练集,所述模型训练集中包含不同的消息特征信息,以及与不同消息特征信息的消息数据发送后分别对应的业务活跃度;

训练模块,用于利用所述模型训练集,训练得到所述预设机器学习模型。

可选的,所述确定模块,具体还用于提取当前待进入消息队列的目标消息数据的目标消息特征信息;

将所述目标消息特征信息输入到所述预设机器学习模型进行计算,输出与所述目标消息特征信息匹配度最高的消息特征信息所对应的业务活跃度;

按照输出的所述业务活跃度,确定所述目标消息数据对应的消息价值等级。

可选的,所述存储模块,具体用于若所述目标消息数据对应的消息价值等级小于或等于第一预设等级阈值,则将所述目标消息数据进行筛除;

若消息队列的当前状态信息符合预设繁忙状态标准,且所述目标消息数据对应的消息价值等级大于所述第一预设等级阈值、且小于或等于第二预设等级阈值,则将所述目标消息数据进行筛除;

若所述目标消息数据对应的消息价值等级大于所述第二预设等级阈值,则将所述目标消息数据进行保留。

可选的,所述装置还包括:过滤模块;

所述过滤模块,用于利用预设关键词,对所述消息数据进行消息内容过滤;

所述确定模块,具体用于确定过滤后的消息数据各自对应的消息价值等级。

可选的,所述存储模块,具体用于根据所述消息数据中目标消息数据的消息类型,确定目标消息数据对应待进入的目标消息队列,其中不同的消息类型都有各自对应类型的消息队列;

若根据目标消息数据对应的消息价值等级和所述目标消息队列的当前状态信息,判定目标消息数据符合所述预设条件,则将目标消息数据存入所述目标消息队列。

可选的,所述装置还包括:

清理模块,用于定时或不定时清理所述消息队列中存入的过期消息数据;

触发模块,用于从所述消息队列中提取未过期的、且通过安全校验的消息数据并触发进行相应发送。

可选的,所述装置还包括:

发送模块,用于获取所述消息数据对应的监控信息;

将所述监控信息发送给对应的消息发送方。

依据本发明又一个方面,提供了一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述消息队列的处理方法。

依据本发明再一个方面,提供了一种消息队列处理的实体设备,包括存储介质、处理器及存储在存储介质上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述消息队列的处理方法。

借由上述技术方案,本发明提供的一种消息队列的处理方法、装置及设备,与目前现有技术中相比,本发明可在消息数据在进入消息队列之前,根据消息数据各自对应的消息价值等级和消息队列的当前状态信息,从消息数据中筛选出符合预设条件的消息数据存入消息队列。通过这种有选择性的消息数据存入方式,保证存入到消息队列中的消息数据都是具有消息价值的,自动过滤掉无消息价值的消息数据,进而在保证让消息队列追求性能与高吞吐量的同时,还可对消息数据进行清洗与过滤,从而减轻消息队列的处理压力,提升相应的处理性能,使得队列中的消息数据持久化处理能够及时的进行,减少数据的丢失。

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

附图说明

构成说明书的一部分的附图描述了本发明的实施例,并且连同描述一起用于解释本发明的原理。

参照附图,根据下面的详细描述,可以更加清楚地理解本发明,其中:

图1示出了本发明实施例提供的一种消息队列的处理方法的流程示意图;

图2示出了本发明实施例提供的另一种消息队列的处理方法的流程示意图;

图3示出了本发明实施例提供的系统架构的实例示意图;

图4示出了本发明实施例提供的应用场景方法的实施流程示意图;

图5示出了本发明实施例提供的一种消息队列的处理装置的结构示意图;

图6示出了本发明实施例提供的另一种消息队列的处理装置的结构示意图。

具体实施方式

现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。

同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。

以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。

对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。

本发明实施例可以应用于计算机系统/服务器,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与计算机系统/服务器一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。

计算机系统/服务器可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。

下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。

针对目前现有技术中如果消息队列接收过多的消息时,会增加消息队列的处理压力,可能会出现性能的下降。持久化不能及时的进行,可能导致数据丢失的技术问题。本实施例提供了一种消息队列的处理方法,如图1所示,该方法包括:

101、接收待进入消息队列的消息数据。

对于本实施例的执行主体可为消息数据处理的装置或设备,具体可为在微服务框架中作为对消息生产者与消息消费者之间消息传递的功能型的消息中间件。用于在消息数据进入消息队列之前对其进行清洗与过滤,具体可执行步骤102至103所示的过程。

102、确定消息数据各自对应的消息价值等级。

其中,消息价值等级用于评定消息价值,例如,消息价值等级具体可包括高等级、中等级、低等级、无等级等的消息价值。

在本实施例中,消息价值可用于评定消息数据向用户发出后对相关业务造成的影响,具体可参考多个方面来综合分析,例如消息分类(如业务通知类、业务推荐类等)、消息内容等。针对不同的业务场景都有各自对应的消息价值评定标准,消息价值的判断方式具体可结合大数据分析来实现。

例如,将一些带有欺诈、网络钓鱼、违法、恶意推广内容等的消息数据确定为无价值的消息价值等级;将一些对用户进行安全提醒、业务相关提示等的消息数据确定为高价值的消息价值等级。

103、根据消息价值等级和消息队列的当前状态信息,从消息数据中筛选出符合预设条件的消息数据存入消息队列。

其中,当前状态信息中可包含消息队列当前的状态情况。预设条件可根据实际业务场景对消息价值的门槛需求,并结合消息队列实时的状态情况进行设定。

例如,根据消息价值等级,确定消息数据a无消息价值,则可被直接筛除;如果消息数据b为低等级消息价值,并且当前消息队列又处于繁忙状态时也可被筛除,这样使得消息队列保存的都是消息价值相对较高的消息数据。

通过应用本实施例上述消息队列的处理方法,与目前现有技术相比,本实施例可在消息数据在进入消息队列之前,根据消息数据各自对应的消息价值等级和消息队列的当前状态信息,从消息数据中筛选出符合预设条件的消息数据存入消息队列。通过这种有选择性的消息数据存入方式,保证存入到消息队列中的消息数据都是具有消息价值的,自动过滤掉无消息价值的消息数据,进而在保证让消息队列追求性能与高吞吐量的同时,还可对消息数据进行清洗与过滤,从而减轻消息队列的处理压力,提升相应的处理性能,使得队列中的消息数据持久化处理能够及时的进行,减少数据的丢失。

进一步的,作为上述实施例的细化和扩展,为了完整说明上述实施例的具体实施过程,提供了另一种消息队列的处理方法,如图2所示,该方法包括:

201、接收待进入消息队列的消息数据。

202、利用预设关键词,对接收到的消息数据进行消息内容过滤。

其中,预设关键词可根据无效数据的内容特征预先设定,例如,根据暴力、叛国、色情、反动、违法等一系列不利于社会发展稳定的内容,预先设定相关的关键词,以便利用这些预设关键词,对消息数据中这些不利于社会发展稳定的内容进行筛除。

例如,在消息数据进入到消息队列之前,将与预设关键词匹配的消息数据进行过滤筛除。通过这种无效数据过滤方式可保证后续进入消息队列中的数据都是有效数据。

203、确定过滤后的消息数据各自对应的消息价值等级。

作为一种可选的实现方式,上述确定消息数据各自对应的消息价值等级,具体可包括:根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

其中,反馈记录信息中可包含消息数据向用户发送后,与该消息数据对应相关业务的业务波动情况。在本可选方式中,可参考历史相同或相似内容的消息数据发送给用户后,对于业务所造成的业务波动影响,而确定消息数据对应的消息价值等级。通过这种结合历史大数据分析的方式,可准备判断消息数据对应的消息价值等级。

进一步的,为了准确实现上述结合历史大数据分析进行判断消息数据对应消息价值等级的过程,相应可选的,上述根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级,具体可包括:通过预设机器学习模型根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

在本可选方式中,可根据历史发送消息数据后相关业务的反馈记录信息,训练得到预设机器学习模型,具体选择反馈记录信息中的哪些记录数据进行训练,可根据实际业务的评价标准而定。

为了方便理解,示例性可选的,以其中一种场景为例,预设机器学习模型的训练过程具体可包括:首先从历史发送消息数据后相关业务的反馈记录信息中,获取不同历史消息数据发送后相关业务的业务活跃度;然后获取不同历史消息数据分别对应的消息特征信息;创建模型训练集,该模型训练集中可包含不同的消息特征信息,以及与不同消息特征信息的消息数据发送后分别对应的业务活跃度;利用创建得到的模型训练集,训练得到预设机器学习模型。

其中,消息特征信息可包括消息分类(如业务通知类、业务推荐类等)、消息格式、发送渠道(如短信、公众号消息、小程序消息、app消息、邮件等)、是否为官方消息、以及具体的消息内容特征(如消息数量、内容形式、是否包含用户信息、是否包含危险链接等)等。业务活跃度可为业务的活跃程度,如业务的增长量、减少量,针对业务的用户满意度,业务服务成功率等。

在本可选示例中,首先创建训练集,在创建得到该训练集后,可利用卷积神经网络、决策树、随机森林等算法,训练得到预设机器学习模型,后续可通过该模型计算出具有某消息特征的消息数据发送后相关业务的业务活跃度。

基于上述过程预先训练得到的机器学习模型,相应的,上述通过预设机器学习模型根据反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级,具体可包括:首先提取当前待进入消息队列的目标消息数据的目标消息特征信息;然后将该目标消息特征信息输入到预设机器学习模型进行计算,输出与目标消息特征信息匹配度最高的消息特征信息所对应的业务活跃度;最后可按照输出的业务活跃度,确定目标消息数据对应的消息价值等级。

例如,按照输出的业务活跃度,找到对应的所属范围,进而确定该所属范围对应的消息价值等级。通过这种方式可准确分析出消息数据中某一消息数据对应的消息价值等级,以便从这些消息数据中筛选出更具有消息价值的消息数据。

204、根据消息价值等级和消息队列的当前状态信息,从消息数据中筛选出符合预设条件的消息数据存入消息队列。

示例性可选的,以消息数据中某一消息数据(如目标消息数据)的判别标准为例,步骤204具体可包括:若目标消息数据对应的消息价值等级小于或等于第一预设等级阈值,则将目标消息数据进行筛除;若消息队列的当前状态信息符合预设繁忙状态标准,且目标消息数据对应的消息价值等级大于所述第一预设等级阈值、且小于或等于第二预设等级阈值,则将所述目标消息数据进行筛除;若目标消息数据对应的消息价值等级大于所述第二预设等级阈值,则将目标消息数据进行保留。

其中,第一预设等级阈值可用于评判无价值或近似于无价值等级的消息数据。第二预设等级阈值可用于评判低价值或近似于低价值等级的消息数据。预设繁忙状态标准可根据消息队列中当前的消息数据数量占比进行判别,例如,当前的消息数据数量占比越大说明消息队列当前越繁忙,通过设置一定的繁忙状态标准,可准确判别消息队列当前是否繁忙。

通过上述可选方式可结合消息数据的消息价值以及消息队列当前的繁忙程度,在消息队列比较繁忙时尽可能的将比较有消息价值的消息数据存入消息队列中,提升了高消息价值的消息数据在消息队列比较繁忙时也能被发送的可能性,进而可及时向用户发送高消息价值的消息数据。

由于在实际的场景中会有多种消息方式,如短信发送、公众号消息发送、小程序消息发送、app消息发送、邮件发送等。为了便于管理并使得这些消息方式互不影响,可选的,可针对这些不同的消息类型(如短信、公众号消息、小程序消息、app消息、邮件等),分别配置各自对应类型的消息队列。相应的,同样是以消息数据中某一消息数据(如目标消息数据)的实现过程为例,上述根据消息价值等级和消息队列的当前状态信息,从消息数据中筛选出符合预设条件的消息数据存入消息队列,具体可包括:根据消息数据中目标消息数据的消息类型,确定目标消息数据对应待进入的目标消息队列,其中不同的消息类型都有各自对应类型的消息队列;若根据目标消息数据对应的消息价值等级和目标消息队列的当前状态信息,判定目标消息数据符合预设条件,则将目标消息数据存入目标消息队列。

例如,对于短信消息类型的目标消息数据,若根据该目标消息数据对应的消息价值等级和短信消息队列的当前状态信息,判定该目标消息数据符合预设条件,则可将该目标消息数据存入短信消息队列中,等待取出并交付给负责短信发送的第三方进行相应发送。

通过这种分消息类型进行对应类型消息队列的存储方式,后续可利用对应的消息发送方式进行发送,如短信消息队列触发采用短信方式发送保存的消息数据、邮件消息队列触发采用邮件方式发送保存的消息数据等。可提高消息传递的效率与精确度。

205、定时或不定时清理消息队列中存入的过期消息数据。

例如,可预先设置过期时长阈值,在消息队列中的消息数据存放时长大于该过期时长阈值时,则可认为是过期消息数据。

206、从消息队列中提取未过期的、且通过安全校验的消息数据并触发进行相应发送。

在本实施例中,安全校验的方式可根据实际业务需求存在多种,为了便于理解,以其中几种实例进行说明。例如,对于短信类的消息数据中存在的用户手机号应该为正常的手机号码,或者数据中不存在恶意网址链接等;对于邮箱类的消息数据中存在的邮箱地址为正确的邮箱地址等。

通过上述方式可保证从消息队列中提取发送的消息数据都为有效数据,从而满足相应的业务需求。

目前对于消息数据中是否有无用消息,消息发送成功率的一些实时监控与过滤等却无从考量。为此在本实施例中,为了实现对消息队列的监控机制,可选的,本实施例方法还可包括:获取消息数据对应的监控信息;将监控信息发送给对应的消息发送方。例如,从接收消息数据开始,经过消息数据筛选,在筛选后的消息数据进入消息队列系统后,整个过程都有相应的通知。如对总共接收到多少消息数据、被筛了多少,成功发送多少、失败多少等等都有相应的监控。

为了说明本实施例方法整体在技术上的实现过程,结合上述各个描述方式,本实施例可采用java数据库连接(javadatabaseconnectivity,jdbc)技术(相当于一种用于执行sql语句的javaapi),当数据进入到消息队列之前对无效数据通过sql语句进行过滤(如筛选出具有消费价值的、利用关键词过滤等),当消息数据被消费前通过sql语句再次过滤(如安全校验、提取未过期消息数据等),以便提高消息传递的效率与精确度。

本实施例可采用spring中的控制反转(inversionofcontrol,ioc)的原理,使用节点工厂保存所有要执行的任务节点(散列存放);以及使用节点管理描述器,对用户提交的节点进行描述、定义(散列存放);以及使用节点注册器,对节点管理描述器所描述的节点进行初始化,并放入节点工厂中。除了这种工厂模式以外,还可利用设计模式中的责任链模式,来对不同类型的数据进行逐步的处理。无法在各个节点得到处理的数据就放弃存入消息队列。

其中,责任链模式可理解为很像异常的捕获和处理,当一个问题发生的时候,当前对象看一下自己是否能够处理,不能的话将问题抛给自己的上级去处理,但是要注意这里的上级不一定指的是继承关系的父类,这点和异常的处理是不一样的。所以可以这样说,当问题不能解决的时候,将问题交给另一个对象去处理,就这样一直传递下去直至当前对象找不到下线了,处理结束。

具体的,可采用spring中ioc的bean注入的工厂模式,根据所依赖的参数及配置进行节点对象的创建。设计模式中的责任链(chainofresponsibility)模式,进行节点方法之间的单向连接及传递。在这样设计的系统中,对于消息的类型判断,则可由不同职责的节点来负责。

例如,如图3所示,为本消息队列处理系统架构实例,对于本消息队列处理系统,数据库a1中保存有各个待进入消息队列的消息数据,这些消息数据来自各个业务方。后续可通过消息内容过滤器a2对这些消息数据进行内容过滤,其中可利用关键词进行消息内容过滤,以及利用评估消息价值等级的方式过滤掉低价值等级的消息数据。过滤通知器a3可反馈相应的过滤结果。经过消息内容过滤后,将保留的消息数据存储在消息队列a4中。然后按照数据存储的时间顺序依次从消息队列a4中提取到缓存a5中进行处理,经由消息发送通道a6发送到第三方处理模块a7,进而交由第三方处理模块a7实现发送该消息数据。整个过程中,监控通知器a8都可全程监控以及记录相关日志信息,并向业务方返回消息数据处理节点的处理进度情况,如果消息数据被过滤掉也可及时提醒业务方被过滤掉的原因信息等。

其中,针对不同的消息类型,可通过对应类型的节点负责处理,示例性的,如果消息数据是短信类型的,那么就由短信这一类型节点负责,具体可利用短信消息通道发送给短信运营商的第三方处理模块;如果是邮箱消息的类型,则交由该邮箱这一类型节点负责,具体可利用邮箱消息通道发送给邮箱运营商的第三方处理模块。这样使得职责清晰,便于管理,可使得各节点负责消息数据互不干扰。

除此之外,本系统还可实现监控通知,对接收了多少消息数据,被筛除多少,成功发送多少,发送失败多少等都有相应的监控反馈。在数据持久化时,使用代理模式,先入缓存,在交由数据库存储。并且还具有安全监控,防止系统入侵和恶意的攻击。

基于上述系统,本实施例的方法可应用于多种应用场景。为了进一步说明本实施例方法具体实现过程,以为业务方发送短信消息为例进行举例说明。需要说明的是,本应用场景只是实例性给出,不做任何限定,相当于本实施例方法众多应用场景中的一个应用场景。如图4所示,具体的该场景方法的执行过程可包括:

b1、业务方可向本消息队列处理系统发送短信消息。

b2、本系统先进行流量的收集监控,具体可确定业务方所发送的消息数据流量。

b3、利用内容过滤器对短信消息内容进行过滤。具体可利用关键词进行消息内容过滤,以及利用评估消息价值等级的方式过滤掉低价值等级的消息数据等。

b4、判断短信消息中的目标短信消息经过内容过滤是否能通过。

b5a、如果通过,表示目标短信消息经过内容过滤后能够被保留下来,接下来进行通道类型过滤,以便找到对应类型的消息队列。

b6a、系统对保留下来的短信消息数据进行流量监控。

b7a、将保留下来的短信消息数据保存到对应类型的短信消息队列中等待取用。

b8a、后续可提取该短信消息队列中的短信消息数据进入短信通道,以便发送给短信运营商进行短信消息的发送。

b9a、在短信通道中可进行一定的安全校验,如进行对应业务方黑名单校验,短信消息数量发送限制等。

b10a、系统对通过安全校验的短信消息数据进行流量监控。

b11a、系统记录相关的日志信息,并可异步的方式去执行回调,告知业务方目前状况。

b12a、系统将通过安全校验的短信消息数据提交给第三方发送该短信消息给用户。

与步骤b5a并列的步骤b5b、系统对被过滤掉的短信消息数据进行流量监控。

b6b、系统通知对应的业务方此消息不符合条件,已被过滤掉,导致短信消息数据发送失败,并且可告知具体的失败原因。

b7b、业务方接收到短信消息发送失败的通知消息,并且可接收到具体的失败原因信息。

基于上述应用场景的实施过程,相当于提供一种在微服务框架中作为对生产者与消费者之间消息传递的功能型的消息中间件。消息中间件借鉴了现有的消息中间件高吞吐,高性能的优点,同时又加上了对数据节点实时监控的监控中心。让消息中间件的功能更加全面。能够提高消息收发的吞吐量,提高消息传递效率和提高消息传递的准确度。以及对消息进行监控分析,提高系统质量,并且自动截取消息传递,提高系统灵活性以及响应速度。可对无用的消息进行过滤,减轻消息队列压力的同时还保证了接收方所接收到数据的有用性。让消息队列在微服务中发挥更强大的作用。

需要说明的是,本实施例方法同样也可以应用到其他业务场景,如在大数据领域中,能够监控实时的数据,并对数据进行数据挖掘与处理,后台也可利用监控中心查看数据节点健康状况等。

进一步的,作为图1和图2方法的具体实现,本实施例提供了一种消息队列的处理装置,如图5所示,该装置包括:接收模块31、确定模块32、存储模块33。

接收模块31,可用于接收待进入消息队列的消息数据;

确定模块32,可用于确定所述消息数据各自对应的消息价值等级;

存储模块33,可用于根据所述消息价值等级和消息队列的当前状态信息,从所述消息数据中筛选出符合预设条件的消息数据存入消息队列。

在具体的应用场景中,所述确定模块32,具体可用于根据历史发送消息数据后相关业务的反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

在具体的应用场景中,所述确定模块32,具体还可用于通过预设机器学习模型根据所述反馈记录信息,确定当前待进入消息队列的消息数据各自对应的消息价值等级。

在具体的应用场景中,如图6所示,本装置还包括:获取模块34、创建模块35、训练模块36;

获取模块34,可用于从所述反馈记录信息中,获取不同历史消息数据发送后相关业务的业务活跃度;

获取模块34,还可用于获取所述不同历史消息数据分别对应的消息特征信息;

创建模块35,可用于创建模型训练集,所述模型训练集中包含不同的消息特征信息,以及与不同消息特征信息的消息数据发送后分别对应的业务活跃度;

训练模块36,可用于利用所述模型训练集,训练得到所述预设机器学习模型。

在具体的应用场景中,所述确定模块32,具体还可用于提取当前待进入消息队列的目标消息数据的目标消息特征信息;将所述目标消息特征信息输入到所述预设机器学习模型进行计算,输出与所述目标消息特征信息匹配度最高的消息特征信息所对应的业务活跃度;按照输出的所述业务活跃度,确定所述目标消息数据对应的消息价值等级。

在具体的应用场景中,所述存储模块33,具体可用于若所述目标消息数据对应的消息价值等级小于或等于第一预设等级阈值,则将所述目标消息数据进行筛除;若消息队列的当前状态信息符合预设繁忙状态标准,且所述目标消息数据对应的消息价值等级大于所述第一预设等级阈值、且小于或等于第二预设等级阈值,则将所述目标消息数据进行筛除;若所述目标消息数据对应的消息价值等级大于所述第二预设等级阈值,则将所述目标消息数据进行保留。

在具体的应用场景中,如图6所示,本装置还可包括:过滤模块37;

所述过滤模块37,可用于利用预设关键词,对所述消息数据进行消息内容过滤;

所述确定模块32,具体可用于确定过滤后的消息数据各自对应的消息价值等级。

在具体的应用场景中,所述存储模块33,具体可用于根据所述消息数据中目标消息数据的消息类型,确定目标消息数据对应待进入的目标消息队列,其中不同的消息类型都有各自对应类型的消息队列;若根据目标消息数据对应的消息价值等级和所述目标消息队列的当前状态信息,判定目标消息数据符合所述预设条件,则将目标消息数据存入所述目标消息队列。

在具体的应用场景中,如图6所示,本装置还可包括:清理模块38、触发模块39;

清理模块38,可用于定时或不定时清理所述消息队列中存入的过期消息数据;

触发模块39,可用于从所述消息队列中提取未过期的、且通过安全校验的消息数据并触发进行相应发送。

在具体的应用场景中,如图6所示,本装置还包括:发送模块310;

发送模块310,可用于获取所述消息数据对应的监控信息;将所述监控信息发送给对应的消息发送方。

需要说明的是,本实施例提供的一种消息队列的处理装置所涉及各功能单元的其它相应描述,可以参考图1和图2中的对应描述,在此不再赘述。

基于上述如图1和图2所示方法,相应的,本实施例还提供了一种存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述如图1和图2所示的方法。

基于这样的理解,本实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施场景所述的方法。

基于上述如图1和图2所示的方法,以及图5和图6所示的虚拟装置实施例,为了实现上述目的,本实施例还提供了一种消息队列处理的实体设备,具体可以为个人计算机,服务器,智能手机,平板电脑,智能手表或者其他网络设备等,该实体设备包括存储介质和处理器;存储介质,用于存储计算机程序;处理器,用于执行计算机程序以实现上述如图1和图2所示的方法。

可选的,该实体设备还可以包括用户接口、网络接口、摄像头、射频(radiofrequency,rf)电路,传感器、音频电路、wi-fi模块等等。用户接口可以包括显示屏(display)、输入单元比如键盘(keyboard)等,可选用户接口还可以包括usb接口、读卡器接口等。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)等。

本领域技术人员可以理解,本实施例提供的一种消息队列处理的实体设备结构并不构成对该实体设备的限定,可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。

存储介质中还可以包括操作系统、网络通信模块。操作系统是管理上述实体设备硬件和软件资源的程序,支持信息处理程序以及其它软件和/或程序的运行。网络通信模块用于实现存储介质内部各组件之间的通信,以及与信息处理实体设备中其它硬件和软件之间通信。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本申请可以借助软件加必要的通用硬件平台的方式来实现,也可以通过硬件实现。通过应用本实施例的技术方案,可实现有选择性的消息数据存入方式,保证存入到消息队列中的消息数据都是具有消息价值的,自动过滤掉无消息价值的消息数据,进而在保证让消息队列追求性能与高吞吐量的同时,还可对消息数据进行清洗与过滤,从而减轻消息队列的处理压力,提升相应的处理性能,使得队列中的消息数据持久化处理能够及时的进行,减少数据的丢失。

本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

可能以许多方式来实现本发明的方法和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法和系统。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

本发明的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。

再多了解一些
当前第1页 1 2 3
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1