本申请涉及消息队列,尤其涉及一种消息处理方法、电子设备及存储介质。
背景技术:
1、在分布式存储系统中,消息队列(message queue)是用来实现消息传输和存储的实际容器。生产者(producer)将服务数据封装成消息并发送到消息队列;消费者(consumer)从消息队列中接收消息并进行消费。由于网络原因或消息队列服务故障等原因,可能会导致消息发送或消费失败的情况,进而影响整个系统的可靠性。
技术实现思路
1、本申请实施例提供一种基于消息处理方法、电子设备及存储介质,以提高消息队列服务的可靠性。
2、第一方面,本申请实施例提供了一种消息处理方法,包括:从消息生产客户端接收第一消息,并查询发送失败消息列表;其中,所述发送失败消息列表用于记录发送失败需要重新发送的消息;响应于查询到与所述第一消息关联的第二消息,在所述发送失败消息列表中删除所述第二消息,并向消息队列发送所述第一消息;其中,所述第一消息与所述第二消息包含相同的消息服务标识。
3、第二方面,本申请实施例提供了一种消息处理方法,包括:向消息消费客户端发送第三消息;确定所述第三消息是否消费成功;在所述第三消息消费成功的情况下,在消费失败消息列表中删除与所述第三消息关联的第四消息;其中,所述消费失败消息列表用于记录消费失败需要重新消费的消息,所述第三消息与所述第四消息包含相同的消息服务标识。
4、第三方面,本申请实施例提供了一种消息处理方法,包括:按照第一预设时间间隔扫描发送失败消息列表;其中,所述发送失败消息列表用于记录发送失败需要重新发送的消息;响应于在所述失败消息列表中扫描到消息,向消息队列发送扫描到的消息;在所述扫描到的消息发送成功的情况下,将所述扫描到的消息从所述发送失败消息列表中删除。
5、第四方面,本申请实施例提供了一种消息处理方法,包括:按照第二预设时间间隔扫描消费失败消息列表;其中,所述消费失败消息列表用于记录消费失败需要重新消费的消息;响应于在所述消费失败消息列表中扫描到消息,向所述消息消费客户端发送扫描到的消息,以使所述消息消费客户端重新消费所述扫描到的消息;在所述扫描到的消息消费成功的情况下,将所述扫描到的消息从所述消费失败消息列表中删除。
6、第五方面,本申请实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现本申请实施例任一项所述的方法。
7、第六方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现本申请实施例任一项所述的方法。
8、由于网络原因或消息队列服务故障等原因,可能会导致消息发送或消费失败的情况,进而影响整个系统的可靠性。为了提高消息队列服务的可靠性,本申请实施例提供了一种消息处理方法,包括:利用发送失败消息列表记录之前发送失败需要重新发送的消息,并在向消息队列发送消息生产客户端的第一消息之前,查询发送失败消息列表中是否存在与第一消息关联的失败消息(第二消息),如果存在,就在发送失败消息列表中删除第二消息,以避免第二消息被重新发送,从而避免消息的重复发送,提高消息发送的可靠性;相应地,利用消费失败消息列表记录消费失败需要重新消费的消息,并在消息消费客户端对第三消息消费成功的情况下,从消费失败消息列表中删除与第三消息关联的失败消息(第四消息),以避免第四消息被重新消费,从而避免消息的重复消费,提高消息消费的可靠性。
9、作为可选的实施方式,发送失败消息列表配置有定时重发任务,具体地,可以按照第一预设时间间隔扫描发送失败消息列表,并在扫描到发送失败的消息后,向消息队列发送该消息,从而对发送失败的消息进行重新发送;在重新发送成功后,从发送失败消息列表中删除该消息,避免重复发送,提高消息发送的可靠性。相应地,消费失败消息列表配置有定时重消费任务,即可以按照第二预设时间间隔扫描消费失败消息列表,并在扫描到消费失败的消息后,重启对该消息的消费逻辑,从而使消费者能够对消费失败的消息进行重新消费;在重新消费成功后,从消费失败消息列表中删除该消息,可以避免重复消费,提高消息消费的可靠性。
10、上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,可依照说明书的内容予以实施,并且为了让本申请的上述和其他目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
1.一种消息处理方法,包括:
2.根据权利要求1所述的方法,在所述发送失败消息列表中删除所述第二消息之前,还包括:
3.根据权利要求1所述的方法,还包括:
4.根据权利要求1至3任一项所述的方法,还包括:
5.根据权利要求4所述的方法,向所述消息队列发送所述第二消息之前,还包括:
6.一种消息处理方法,包括:
7.根据权利要求6所述的方法,还包括:
8.根据权利要求6所述的方法,其中,所述第三消息为具有消费先后顺序的消息。
9.根据权利要求6至8任一项所述的方法,还包括:
10.根据权利要求9所述的方法,向所述消息消费客户端发送所述第四消息之前,还包括:
11.一种消息处理方法,包括:
12.一种消息处理方法,包括:
13.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器在执行所述计算机程序时实现权利要求1-12中任一项所述的方法。
14.一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-12中任一项所述的方法。