基于消息队列的消息传输方法、装置及设备制造方法及图纸

技术编号:24852710 阅读:22 留言:0更新日期:2020-07-10 19:06
本申请公开了一种基于消息队列的消息传输方法、装置及设备,属于计算机数据通讯领域。所述方法包括:获取消息文件,所述消息文件采用所述消息队列的形式存储有生产者程序生成的消息,该消息文件可以是被创建的固定大小的消息持久化文件;从消费者状态数据中确定消费者程序在所述消息文件上的读取位置,所述消费者状态数据与所述消费者程序一一对应;根据所述读取位置读取所述消息文件中的第一消息;将所述第一消息发送至所述消费者程序。当多个消费者程序读取消息队列中的消息时,无需消息队列将消息拷贝多份消息副本,实现了多个消费者彼此独立地消费消息,提高了消息队列的传输消息的效率。

【技术实现步骤摘要】
基于消息队列的消息传输方法、装置及设备
本申请涉及计算机数据通讯领域,特别涉及一种基于消息队列的消息传输方法、装置及设备。
技术介绍
消息队列(MessageQueue,MQ)是一种应用程序间的通信方式,应用程序在将消息发送至消息队列后可以立即返回,由消息系统来确保消息的可靠传递。消息的生产者(消息发布者)将消息发布到消息队列中,消息的消费者(消息主动获取者)从消息队列中获取消息,生产者和消费者之间互不干扰。相关技术中,消费者通过消息通道(channel)主动获取消息队列中的消息,消费通道是指消费者从消息队列中主动获取消息的途径,当多个消费者消费同一类型的消息时,消息队列将一份消息拷贝为多份消息副本,多个消费者从各自对应的消息通道中获取一份消息副本。基于上述情况,多个消费者消费同一类型的消息时,需要占用较大的存储空间,消息队列在传输消息时的效率较低。
技术实现思路
本申请实施例提供了一种基于消息队列的消息传输方法、装置及设备,使得多个消费者消费同一类型的消息时,消息队列在传输消息的效率较高。所述技术方本文档来自技高网...

【技术保护点】
1.一种基于消息队列的消息传输方法,其特征在于,所述方法包括:/n获取消息文件,所述消息文件采用所述消息队列的形式存储有生产者程序生成的消息;/n从消费者状态数据中确定消费者程序在所述消息文件上的读取位置,所述消费者状态数据与所述消费者程序一一对应;/n根据所述读取位置读取所述消息文件中的第一消息;/n将所述第一消息发送至所述消费者程序。/n

【技术特征摘要】
1.一种基于消息队列的消息传输方法,其特征在于,所述方法包括:
获取消息文件,所述消息文件采用所述消息队列的形式存储有生产者程序生成的消息;
从消费者状态数据中确定消费者程序在所述消息文件上的读取位置,所述消费者状态数据与所述消费者程序一一对应;
根据所述读取位置读取所述消息文件中的第一消息;
将所述第一消息发送至所述消费者程序。


2.根据权利要求1所述的方法,其特征在于,所述消费者程序为至少两个,每个所述消费者程序对应有各自的消费者状态文件,所述消费者状态文件中存储有所述消费者程序的所述消费者状态数据。


3.根据权利要求1所述的方法,其特征在于,所述消息文件包括按照顺序排列的至少两个消息文件,所述读取位置包括:第一消息文件标识和第一消息文件偏移;
所述根据所述读取位置读取所述消息文件中的所述第一消息,包括:
根据所述读取位置中的所述第一消息文件标识,在所述至少两个消息文件中确定出待读取的第一目标消息文件;
根据所述读取位置中的所述第一消息文件偏移,在所述第一目标消息文件中读取所述第一消息。


4.根据权利要求1所述的方法,其特征在于,所述消息文件包括至少两类消息文件,每类所述消息文件对应各自的消息标签;
所述获取消息文件,包括:
确定所述消费者程序所对应的第一消息标签;
从所述至少两类消息文件中,确定与所述第一消息标签对应的消息文件。


5.根据权利要求1至4任一所述的方法,其特征在于,所述消息文件包括按照顺序排列的至少两个消息文件,每个所述消息文件具有文件大小上限,所述方法还包括:
获取所述生产者程序生成的第二消息;
获取所述生产者程序的最近一次写入位置,所述最近一次写入位置包括:第二消息文件标识和第二消息文件偏移;
响应于第二消息总量在第k个消息文件中未达到所述文件大小上限,将所述第二消息写入所述第k个消息文件中,更新所述最近一次写入位置;所述第k个消息文件是所述第二消息文件标识对应的消息文件,所述第二消息总量是所述第二消息的数据量与所述第二消息文件偏移的加和,k≥2,且k为正整数;
响应于所述第二消息总量...

【专利技术属性】
技术研发人员:张阳崔昌栋钱佳林柴猛崔永超尹涛陈慧敏姜凯洋朱树强张朝旭刘文杰王仁斌张宏振
申请(专利权)人:远景智能国际私人投资有限公司上海远景科创智能科技有限公司
类型:发明
国别省市:新加坡;SG

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

1