一种消息处理方法和装置制造方法及图纸

技术编号:21952014 阅读:32 留言:0更新日期:2019-08-24 17:33
本发明专利技术公开了一种消息处理方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:消息中间件根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区;其中,所述获取请求包括使用方标识和所请求获取的消息类型,所述分区保存有消息的存储位置信息;所述消息中间件根据所述分区的消费位置信息,从所述分区中选取出一个分段;其中,所述分区包括至少一个所述分段;所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方。该实施方式通过将每个分区进行分段,不同分段之间并行处理消息,在不增加分区数量的情况下,使得处理的消息数量翻倍,降低了消息传递时延。

A Message Processing Method and Device

【技术实现步骤摘要】
一种消息处理方法和装置
本专利技术涉及计算机领域,尤其涉及一种消息处理方法和装置。
技术介绍
目前在不同应用之间进行数据交互,为了达到应用解耦等目的,会引入一个消息中间件。假设在甲机房部署一个应用A,作为消息生成方;在乙机房部署一个应用B,作为消息使用方。消息生成方把生成的消息发送到消息中间件的Broker(Broker是接收、保存、分发消息的应用,作为消息处理的代理端)中暂存起来;消息使用方从Broker中获取消息,之后执行相应的业务逻辑。上述消息处理过程中,一方面消息生成方要求要能快速可靠的将消息发送至Broker并存储,另一方面消息使用方又要求能以最快的速度将消息从Broker中拉取然后进行消费。因此,不管是发送消息慢还是拉取消息慢,都会造成消息传递的延时。现有技术通过ROKETMQ(是一款分布式的消息中间件,仅有发布订阅这一种模式)进行消息处理,其提供了单个日志文件(Journal)同步写入、多分区(Partition)异步索引的功能。单个日志文件的同步写入,保证消息生成方发送的消息能快速可靠的写入Broker;多分区异步索引在一定程度上提升了消息使用方并发拉取消息的速度。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:(1)虽然索引文件是异步写入磁盘的,但是在写入时会进行刷盘操作,如果分区的数量太多就会导致磁盘随机写的问题,影响日志文件的同步写入,进而导致消息发送性能下降。(2)由于分区的数量固定,且各消息使用方的每个线程对消息的处理能力有限,当消息出现大量积压时,无法及时处理掉积压地消息。
技术实现思路
有鉴于此,本专利技术实施例提供一种消息处理方法和装置,通过将每个分区进行分段,不同分段之间并行处理消息,在不增加分区数量的情况下,使得处理的消息数量翻倍,降低了消息传递时延。实现上述目的,根据本专利技术实施例的一个方面,提供了一种消息处理方法。本专利技术实施例的一种消息处理方法,包括:消息中间件根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区;其中,所述获取请求包括使用方标识和所请求获取的消息类型,所述分区保存有消息的存储位置信息;所述消息中间件根据所述分区的消费位置信息,从所述分区中选取出一个分段;其中,所述分区包括至少一个所述分段;所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方。可选地,所述消息中间件根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区的步骤之前,还包括:为每个所述分区分别设置至少一个所述分段;其中,一个所述分区上的分段数量以及一个所述分段所对应的消息数量根据需求确定,且所有分区的分段数量大于所有的分区数量。可选地,所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方的步骤之后,还包括:在预定的超时时间内接收与所述消息相对应的确认信息,如果所述确认信息的位置信息在所述分段内连续且从所述分段对应的分区的头部开始在所述分区内连续,则将连续确认的最后一个位置信息作为所述分区的确认位置信息;根据所述分区的确认位置信息更新所述消费位置信息。可选地,所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方的步骤之后,还包括:如果所述超时时间内未接收到与所述消息相对应的确认信息,则重新输出所述消息。可选地,所述查找出与所述获取请求的消息类型相同的分区的步骤之后以及所述消息中间件根据所述分区的消费位置信息,从所述分区中选取出一个分段的步骤之前,还包括:如果所述分区中与所有分段相对应的消息已全部被消费,则在所述分区中重新设置所述分段。为实现上述目的,根据本专利技术实施例的另一个方面,提供了一种消息处理装置。本专利技术实施例的一种消息处理装置,包括:查找模块,用于根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区;其中,所述获取请求包括使用方标识和所请求获取的消息类型,所述分区保存有消息的存储位置信息;选取模块,用于根据所述分区的消费位置信息,从所述分区中选取出一个分段;其中,所述分区包括至少一个所述分段;输出模块,用于根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方。可选地,所述装置还包括:设置模块,用于为每个所述分区分别设置至少一个所述分段;其中,一个所述分区上的分段数量以及一个所述分段所对应的消息数量根据需求确定,且所有分区的分段数量大于所有的分区数量。可选地,所述装置还包括:更新模块,用于在预定的超时时间内接收与所述消息相对应的确认信息,如果所述确认信息的位置信息在所述分段内连续且从所述分段对应的分区的头部开始在所述分区内连续,则将连续确认的最后一个位置信息作为所述分区的确认位置信息;以及根据所述分区的确认位置信息更新所述消费位置信息。可选地,所述装置还包括:重新输出模块,用于如果所述超时时间内未接收到与所述消息相对应的确认信息,则重新输出所述消息。可选地,所述装置还包括:重新设置模块,用于如果所述分区中与所有分段相对应的消息已全部被消费,则在所述分区中重新设置所述分段。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种电子设备。本专利技术实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术实施例的一种消息处理方法。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种计算机可读介质。本专利技术实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本专利技术实施例的一种消息处理方法。上述专利技术中的一个实施例具有如下优点或有益效果:通过将每个分区进行分段,不同分段之间并行处理消息,在不增加分区的情况下,使得处理的消息数量翻倍,降低了消息传递时延;按需灵活设置每个分区的分段数量以及各分段对应的消息数量,既支持高性能高可靠的进行消息写入,又能保证高性能进行消息拉取;根据确认信息更新分区的消费位置信息以及超时确认机制,均能确保在支持高并发的情况不会丢失消息;通过动态调整每个分区的分段数量,提高了整体的消息处理速度。上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的消息处理方法的主要步骤的示意图;图2是现有技术中消息处理方法的架构图;图3是根据本专利技术实施例的消息处理方法的架构图;图4是根据本专利技术实施例的消息处理方法的主要流程示意图;图5是根据本专利技术实施例的消息处理装置的主要模块的示意图;图6是本专利技术实施例可以应用于其中的示例性系统架构图;图7是适用于来实现本专利技术实施例的电子设备的计算机装置的结构示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。下面对本专利技术实施例涉及到的词语进行解释说明。消息生成方:生成消息,把生成的消息发送到Br本文档来自技高网...

【技术保护点】
1.一种消息处理方法,其特征在于,包括:消息中间件根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区;其中,所述获取请求包括使用方标识和所请求获取的消息类型,所述分区保存有消息的存储位置信息;所述消息中间件根据所述分区的消费位置信息,从所述分区中选取出一个分段;其中,所述分区包括至少一个所述分段;所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方。

【技术特征摘要】
1.一种消息处理方法,其特征在于,包括:消息中间件根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区;其中,所述获取请求包括使用方标识和所请求获取的消息类型,所述分区保存有消息的存储位置信息;所述消息中间件根据所述分区的消费位置信息,从所述分区中选取出一个分段;其中,所述分区包括至少一个所述分段;所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方。2.根据权利要求1所述的方法,其特征在于,所述消息中间件根据收到的获取请求,查找出与所述获取请求的消息类型相同的分区的步骤之前,还包括:为每个所述分区分别设置至少一个所述分段;其中,一个所述分区上的分段数量以及一个所述分段所对应的消息数量根据需求确定,且所有分区的分段数量大于所有的分区数量。3.根据权利要求1所述的方法,其特征在于,所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方的步骤之后,还包括:在预定的超时时间内接收与所述消息相对应的确认信息,如果所述确认信息的位置信息在所述分段内连续且从所述分段对应的分区的头部开始在所述分区内连续,则将连续确认的最后一个位置信息作为所述分区的确认位置信息;根据所述分区的确认位置信息更新所述消费位置信息。4.根据权利要求3所述的方法,其特征在于,所述消息中间件根据所述使用方标识和所述存储位置信息,将与所述分段相对应的消息输出至消息使用方的步骤之后,还包括:如果所述超时时间内未接收到与所述消息相对应的确认信息,则重新输出所述消息。5.根据权利要求1所述的方法,其特征在于,所述查找出与所述获取请求的消息类型相同的分区的步骤之后以及所述消息中间件根据所述分区的消费位置信息,从所述分区中选取出一个分段的步骤之前,还包括:如果所述分区中与所有分段相对应的消息已全部被消费,则在所述分区中重新设置所述分...

【专利技术属性】
技术研发人员:林德强丁俊
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1