logo好方法网

基于消息队列的消息消费方法、装置及设备


技术摘要:
本申请公开了一种基于消息队列的消息消费方法、装置及设备,属于计算机数据通讯领域。该方法包括:将消息写入消息文件中对应的本次写入位置,消息是生产者程序生成的,本次写入位置是按照循环写入顺序在n个消息文件中确定出的写入位置,n为正整数;获取消费者程序在消  全部
背景技术:
消息队列(Message  Queue,MQ)是一种应用程序间的通信方式,应用程序在将消息 发送至消息队列后可以立即返回,由消息系统来确保消息的可靠传递。消息的生产者(消息 发布者)将消息发布到消息队列中,消息的消费者(消息主动获取者)从消息队列中获取消 息,生产者和消费者之间互不干扰。
技术实现要素:
本申请实施例提供了一种基于消息队列的消息消费方法、装置及设备,使得消费 速度较低的消费者在读取消息时对消息传输系统中的生产者或其他消费者的影响降到最 低。所述技术方案如下: 根据本申请的一个方面,一种基于消息队列的消息消费方法,所述方法包括: 将消息写入消息文件中对应的本次写入位置,所述消息是生产者程序生成的,所 述本次写入位置是按照循环写入顺序在n个消息文件中确定出的写入位置,n为正整数; 获取消费者程序在所述消息文件中对应的本次读取位置,所述本次读取位置是按 照循环读取顺序在所述n个消息文件中确定出的读取位置; 响应于所述本次写入位置与所述本次读取位置重合,将所述本次读取位置更新为 目标读取位置,所述目标读取位置是沿所述循环写入顺序的写入方向上位于所述本次读取 位置之后的读取位置; 将所述目标读取位置读取到的所述消息文件中的消息,发送至所述消费者程序。 根据本申请的另一方面,提供了一种基于消息队列的消息消费装置,所述装置包 括: 写入模块,用于将消息写入消息文件中对应的本次写入位置,所述消息是生产者 程序生成的,所述本次写入位置是按照循环写入顺序在n个消息文件中确定出的写入位置, n为正整数; 获取模块,用于获取消费者程序在所述消息文件中对应的本次读取位置,所述本 次读取位置是按照循环读取顺序在所述n个消息文件中确定出的读取位置; 处理模块,用于响应于所述本次写入位置与所述本次读取位置重合,将所述本次 读取位置更新为目标读取位置,所述目标读取位置是沿所述循环写入顺序的写入方向上位 于所述本次读取位置之后的读取位置; 读取模块,用于将所述目标读取位置读取到的所述消息文件中的消息,发送至所 述消费者程序。 根据本申请的另一方面,提供了一种计算机设备,所述计算机设备设置有传感器, 4 CN 111552575 A 说 明 书 2/16 页 所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、 代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理 器加载并执行以实现如上方面所述的基于消息队列的消息消费方法。 本申请实施例提供的技术方案带来的有益效果至少包括: 在本次写入位置与本次读取位置重合时,通过将本次读取位置更新为目标读取位 置,即将本次读取位置沿循环写入顺序的写入方向进行更新,使得消费者程序的读取位置 与写入位置重新保持一段距离,对于偶尔消费速度较低的消费者程序,只会丢失小部分消 息。 附图说明 为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。 图1是本申请一个示例性实施例提供的计算机系统的示意图; 图2是本申请一个示例性实施例提供的服务器的结构框图; 图3是本申请一个示例性实施例提供的消息系统的结构示意图; 图4是本申请一个示例性实施例提供的基于消息队列的消息传输方法的流程图; 图5是本申请另一个示例性实施例提供的基于消息队列的消息传输方法的流程 图; 图6是本申请另一个示例性实施例提供的消息系统的结构示意图; 图7是本申请一个示例性实施例提供的消息队列进行写入操作的方法的流程图; 图8是本申请一个示例性实施例提供的某时刻消息文件的读取情况的示意图; 图9是本申请一个示例性实施例提供的基于消息队列的消息消费方法的流程图; 图10是本申请另一个示例性实施例提供的某时刻消息文件的读取情况的示意图; 图11是本申请另一个示例性实施例提供的基于消息队列的消息消费方法的流程 图; 图12是本申请一个示例性实施例提供的基于消息队列的消息传输装置框图; 图13是本申请一个示例性实施例提供的基于消息队列的消息消费装置框图; 图14是本申请一个示例性实施例提供的计算机设备的装置结构示意图。
下载此资料需消耗2积分,
分享到:
收藏