用于消息队列的消息丢失检测方法和装置制造方法及图纸

技术编号:24251295 阅读:65 留言:0更新日期:2020-05-22 23:26
本申请公开了一种用于消息队列的消息丢失检测方法和装置。其中,该方法包括:接收生产者发送的业务消息和业务消息的消息标识,业务消息用于表示待消费者执行的目标任务;将业务消息存储至消息队列和将消息标识存储至数据库,消息队列和数据库与消费者之间独立通信;通过消息队列将业务消息发送给消费者,以使消费者执行目标任务并存储业务消息的消息标识;在数据库接收到消费者的查询请求时,通过数据库将消息标识发送给消费者,以使消费者根据数据库存储的消息标识和消费者存储的消息标识确定是否存在丢失的业务消息。本申请解决了相关技术中不能准确检测丢失的消息的技术问题。

Message loss detection method and device for message queuing

【技术实现步骤摘要】
用于消息队列的消息丢失检测方法和装置
本申请涉及互联网领域,具体而言,涉及一种用于消息队列的消息丢失检测方法和装置。
技术介绍
远程过程调用RPC(RemoteProcedureCall),通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议,RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层,RPC使得开发包括网络分布式多程序在内的应用程序更加容易。在分布式系统架构中,RPC是一项通用技术,用来实现消息可靠有序的传递,该技术是分布式系统环境中确保系统稳定运行的关键因素之一,以openstack-neutron组件(一种用于网络虚拟化的组件)为例,其系统架构如图1所示。在如图1所示的系统架构中,如果用户给neutron-server(生产者)发送HTTP请求,该请求用来请求创建两个网段之间的路由条目,实现两个网段之间的IP三层可达,若生产者没有将请求准确的发送给L3代理(或称L3-agent,即接收采用FANOUT方式发送的业务消息的消费者的代本文档来自技高网...

【技术保护点】
1.一种用于消息队列的消息丢失检测方法,所述方法应用于消息处理系统,所述消息处理系统包括有消息队列和数据库,其特征在于,包括:/n接收生产者发送的业务消息和所述业务消息的消息标识,其中,所述业务消息用于表示待消费者执行的目标任务;/n将所述业务消息存储至所述消息队列和将所述消息标识存储至所述数据库,其中,所述消息队列和数据库与所述消费者之间独立通信;/n通过所述消息队列将所述业务消息发送给所述消费者,以使所述消费者执行所述目标任务并存储所述业务消息的消息标识;/n在所述数据库接收到所述消费者的查询请求时,通过所述数据库将所述消息标识发送给所述消费者,以使所述消费者根据所述数据库存储的消息标识和...

【技术特征摘要】
1.一种用于消息队列的消息丢失检测方法,所述方法应用于消息处理系统,所述消息处理系统包括有消息队列和数据库,其特征在于,包括:
接收生产者发送的业务消息和所述业务消息的消息标识,其中,所述业务消息用于表示待消费者执行的目标任务;
将所述业务消息存储至所述消息队列和将所述消息标识存储至所述数据库,其中,所述消息队列和数据库与所述消费者之间独立通信;
通过所述消息队列将所述业务消息发送给所述消费者,以使所述消费者执行所述目标任务并存储所述业务消息的消息标识;
在所述数据库接收到所述消费者的查询请求时,通过所述数据库将所述消息标识发送给所述消费者,以使所述消费者根据所述数据库存储的消息标识和所述消费者存储的消息标识确定是否存在丢失的业务消息。


2.根据权利要求1所述的方法,其特征在于,在接收生产者发送的所述业务消息的消息标识之后,所述方法还包括:
将所述消息标识存储至预设存储空间,其中,所述预设存储空间用于对保存至所述数据库的消息标识进行冗余备份;
在所述数据库保存的消息标识丢失的情况下,将所述预设存储空间备份的消息标识复制至所述数据库进行存储。


3.根据权利要求1或2所述的方法,其特征在于,将所述业务消息存储至所述消息队列和将所述消息标识存储至所述数据库包括:
在所述业务消息的类型为第一类型的情况下,将所述业务消息存储至所有所述消息队列,并将所述消息标识与所述第一类型关联后存储至所述数据库,其中,为所述第一类型的消息被设定为发送给所有所述消息队列供所有所述消费者进行消费;
在所述业务消息的类型为第二类型的情况下,将所述业务消息存储至与所述业务消息指定的消费者关联的所述消息队列,并将所述消息标识与所述业务消息指定的消费者关联后存储至所述数据库,其中,为所述第二类型的消息被设定为发送给与指定的消费者关联的所述消息队列供指定的消费者进行消费。


4.根据权利要求1或2所述的方法,其特征在于,在通过所述数据库将所述消息标识发送给所述消费者之后,所述方法还包括:
删除所述数据库中被所述消费者查询过的且对应的业务消息已经被所述消费者消费的消息标识。


5.一种用于消息队列的消息丢失检测方法,所述方法应用于消息的消费者,其特征在于,包括:
接收来自消息处理系统的消息队列发送的业务消息并在本地存储所述业务消息的消息标识,其中,所述业务消息用于表示待消费者执行的目标任务;
向所述消息处理系统的数据库发送标识获取请求,以获取所述数据库中存储的消息标识;
根据本地存储的消息标识和所述数据库存储的消息标识确定是否存在丢失的业务消息。


6.根据权利要求5所述的方法,其特征在于,根据本地存储的消息标识和所述数据库存储的消息标识确定是否存在丢失的业务消息包括:
将本地存储的消息标识与数据库存储的消息标识进行比对,得到比对结果;
根据比对结果确定是否存在丢失的业务消息。


7.根据权利要求6所述的方法,其特征在于,根据比对结果确定是否存在丢失的业务消息包括:
在所述比对结果为存在第一类消息标识的情况下,确定所述第一类消息标识对应的业务消息为丢失的业务消息;
在所述比对结果为不存在所述第一类消息标识的情况下,确定不存在丢失的业务消息;
其中,所述第一类消息标识表征所述数据库存储的、且在本地存储中查找不到的消息标识。


8.根据权利要求6所述的方法,其特征在于,所述方法还包括:
从本地存储中删除第二类消息标识,其中,所述第二类消息标识为通过所述比对结果确定的在所述数据库中和本地存储中均存在的消息标识。


9.根据权利要求7中所述的方法,其特征在于,所述方法还包括:
在所述比对结果表示存在第一类消息标识时,启动计时器;
在所述计时器的计时时长达到第一时长时,确定是否接收到所述第一类消息标识对应的业务消息;
所述确定所述第一类消息标识对应的业务消息为丢失的业务消息,包括:
若确定未接收到所述第一类消息标识对应的业务消息时,确定所述第一类消息标识对应的业务消息丢失。


10.根据权利要求9所述的方...

【专利技术属性】
技术研发人员:马鹏程胡伟
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

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

1