CN112328418A - 一种提升mq同步可靠性的方法和系统 - Google Patents

一种提升mq同步可靠性的方法和系统 Download PDF

Info

Publication number
CN112328418A
CN112328418A CN202011367026.1A CN202011367026A CN112328418A CN 112328418 A CN112328418 A CN 112328418A CN 202011367026 A CN202011367026 A CN 202011367026A CN 112328418 A CN112328418 A CN 112328418A
Authority
CN
China
Prior art keywords
data
message
delivery server
retry
sent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011367026.1A
Other languages
English (en)
Other versions
CN112328418B (zh
Inventor
宋子杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xingyin Information Technology Shanghai Co ltd
Original Assignee
Xingyin Information Technology Shanghai Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xingyin Information Technology Shanghai Co ltd filed Critical Xingyin Information Technology Shanghai Co ltd
Priority to CN202011367026.1A priority Critical patent/CN112328418B/zh
Publication of CN112328418A publication Critical patent/CN112328418A/zh
Application granted granted Critical
Publication of CN112328418B publication Critical patent/CN112328418B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种提升MQ同步可靠性的方法及系统,当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将数据发送至消息重试投递服务器,消息重试投递服务器将接收到的数据存储至数据库;消息重试投递服务器对数据库中的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端;当消费端接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若是则生成数据处理成功的反馈信息,并将数据处理成功的反馈信息发送至消息重试投递服务器;消息重试投递服务器基于反馈信息将数据库中对应的数据设置为成功状态。本发明在数据处理过程中,能够有效的提升MQ的同步可靠性,进而能够有效的解决数据丢失问题。

Description

一种提升MQ同步可靠性的方法和系统
技术领域
本发明涉及数据处理技术领域,尤其涉及一种提升MQ(Message Queue,消息队列)同步可靠性的方法和系统。
背景技术
MQ作为互联网技术架构中普遍使用的分布式中间件,功能广泛,本领强大,可以用来在系统之间进行异步消息通知,对业务模块进行解耦,或者是在秒杀等流量波动大的业务场景下对流量进行缓冲,避免系统被冲垮。简单来说就是用在分布式系统里,承担系统间异步调用,解耦,流量缓冲的角色。
但是MQ作为一个额外独立的系统,引入到项目中,使得项目整体的复杂度提升了,需要额外去维护它,另一个就是,项目整体的可用性会降低,因为没有绝对百分之百可用的系统,而引入一个新的系统,势必会降低整体的可用性。
因此,在数据处理过程中,如何有效的提升MQ的同步可靠性,是一项亟待解决的问题。
发明内容
有鉴于此,本发明提供了一种提升MQ同步可靠性的方法,在数据处理过程中,能够有效的提升MQ的同步可靠性,进而能够有效的解决数据丢失问题。
本发明提供了一种提升MQ同步可靠性的方法,包括:
当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将所述发送失败的数据发送至消息重试投递服务器;
所述消息重试投递服务器将接收到的所述发送失败的数据存储至数据库;
所述消息重试投递服务器对所述数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过所述消息队列投递至消费端;
当所述消费端接收所述消息队列发送的数据时,拦截所述消息队列发送的所述数据,并判断所述数据是否处理成功,若是,则生成所述数据处理成功的反馈信息,并将所述数据处理成功的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器基于接收到的所述数据处理成功的反馈信息将所述数据库中对应的数据设置为成功状态。
优选地,所述方法还包括:
当判断所述数据未处理成功时,将所述数据对应的重试次数加1,判断所述数据对应的重试次数是否大于预设次数,若否,则设置所述数据的重试时间,将设置的所述数据的重试时间发送至所述消息重试投递服务器;
所述消息重试投递服务器基于所述数据的重试时间,在达到所述数据的重试时间时,将所述数据再次通过所述消息队列投递至消费端。
优选地,所述方法还包括:
当所述数据对应的重试次数大于预设次数时生成所述数据处理失败的反馈信息,并将所述数据处理失败的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器基于接收到的所述数据处理失败的反馈信息将所述数据库中对应的数据设置为失败状态。
优选地,所述将所述发送失败的数据发送至消息重试投递服务器,包括:
将所述发送失败的数据通过远程过程调用发送至消息重试投递服务器。
优选地,所述将所述数据处理成功的反馈信息发送至所述消息重试投递服务器,包括:
将所述数据处理成功的反馈信息通过远程过程调用发送至所述消息重试投递服务器。
一种提升MQ同步可靠性的系统,包括:位于生产端的第一代理服务模块、消息重试投递服务器和位于消费端的第二代理服务模块;其中:
所述第一代理服务模块,用于当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将所述发送失败的数据发送至消息重试投递服务器;
所述消息重试投递服务器,用于将接收到的所述发送失败的数据存储至数据库;
所述消息重试投递服务器,还用于对所述数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过所述消息队列投递至消费端;
所述第二代理服务模块,用于当所述消费端接收所述消息队列发送的数据时,拦截所述消息队列发送的所述数据,并判断所述数据是否处理成功,若是,则生成所述数据处理成功的反馈信息,并将所述数据处理成功的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器,还用于基于接收到的所述数据处理成功的反馈信息将所述数据库中对应的数据设置为成功状态。
优选地,所述第二代理服务模块还用于:
当判断所述数据未处理成功时,将所述数据对应的重试次数加1,判断所述数据对应的重试次数是否大于预设次数,若否,则设置所述数据的重试时间,将设置的所述数据的重试时间发送至所述消息重试投递服务器;
所述消息重试投递服务器,还用于基于所述数据的重试时间,在达到所述数据的重试时间时,将所述数据再次通过所述消息队列投递至消费端。
优选地,所述第二代理服务模块还用于:
当所述数据对应的重试次数大于预设次数时,若是,则生成所述数据处理失败的反馈信息,并将所述数据处理失败的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器,还用于基于接收到的所述数据处理失败的反馈信息将所述数据库中对应的数据设置为失败状态。
优选地,所述第一代理服务模块在执行将所述发送失败的数据发送至消息重试投递服务器时,具体用于:
将所述发送失败的数据通过远程过程调用发送至消息重试投递服务器。
优选地,所述第二代理服务模块在执行将所述数据处理成功的反馈信息发送至所述消息重试投递服务器时,具体用于:
将所述数据处理成功的反馈信息通过远程过程调用发送至所述消息重试投递服务器。
综上所述,本发明公开了一种提升MQ同步可靠性的方法,当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器;消息重试投递服务器将接收到的发送失败的数据存储至数据库;消息重试投递服务器对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端;当消费端接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若是,则生成数据处理成功的反馈信息,并将数据处理成功的反馈信息发送至消息重试投递服务器;消息重试投递服务器基于接收到的数据处理成功的反馈信息将数据库中对应的数据设置为成功状态。本发明通过设置消息重试投递服务器,能够有效解决当生产端、消息队列和消费端任一方出现问题造成的数据丢失问题,有效提升了消息队列的同步可靠性,进而提升了用户体验。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明公开的一种提升MQ同步可靠性的方法实施例1的方法流程图;
图2为本发明公开的一种提升MQ同步可靠性的方法实施例2的方法流程图;
图3为本发明公开的一种提升MQ同步可靠性的方法实施例3的方法流程图;
图4为本发明公开的一种提升MQ同步可靠性的系统实施例1的结构示意图;
图5为本发明公开的一种提升MQ同步可靠性的系统实施例2的结构示意图;
图6为本发明公开的一种提升MQ同步可靠性的系统实施例3的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明公开的一种提升MQ同步可靠性的方法实施例1的方法流程图,所述方法可以包括以下步骤:
S101、当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器;
在生产端向MQ发送数据的过程中,当发送数据失败时,通过在生产端设置的第一代理服务模块对发送失败的数据进行拦截,并将拦截到的发送失败的数据发送至消息重试投递服务器。
具体的,第一代理服务模块在向消息重试投递服务器发送拦截到的发送失败的数据时,可以通过远程过程调用将拦截到的发送失败的数据发送至消息重试投递服务器。
S102、消息重试投递服务器将接收到的发送失败的数据存储至数据库;
消息重试投递服务器在接收到生产端的第一代理服务模块发送的拦截到的发送失败的数据后,将接收到的发送失败的数据存储至数据库中。
S103、消息重试投递服务器对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端;
然后,消息重试投递服务器对存储在数据库中的生产者发送失败的数据进行轮询监听,将达到重新投递重试时间的数据通过MQ投递至消费端。
S104、当消费端接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若是,则生成数据处理成功的反馈信息,并将数据处理成功的反馈信息发送至消息重试投递服务器;
在MQ向消费端投递消息重试投递服务器重新投递的达到重试时间的数据时,通过在消费端设置的第二代理服务模块拦截消息队列发送的数据,并判断消息队列发送的数据是否处理成功,如果处理成功,则生成数据处理成功的反馈信息,并将数据处理成功的反馈信息发送至消息重试投递服务器。
具体的,第二代理服务模块在向消息重试投递服务器发送数据处理成功的反馈信息时,可以通过远程过程调用将数据处理成功的反馈信息发送至消息重试投递服务器。
S105、消息重试投递服务器基于接收到的数据处理成功的反馈信息将数据库中对应的数据设置为成功状态。
消息重试投递服务器在接收到第二代理服务模块发送的数据处理成功的反馈信息后,将数据库中对应的数据设置为成功状态,在将数据设置为成功状态后,将不再对数据进行重试投递。
综上所述,在上述实施例中,当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器;消息重试投递服务器将接收到的发送失败的数据存储至数据库;消息重试投递服务器对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端;当消费端接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若是,则生成数据处理成功的反馈信息,并将数据处理成功的反馈信息发送至消息重试投递服务器;消息重试投递服务器基于接收到的数据处理成功的反馈信息将数据库中对应的数据设置为成功状态。通过设置消息重试投递服务器,能够有效解决当生产端、消息队列和消费端任一方出现问题造成的数据丢失问题,有效提升了消息队列的同步可靠性,进而提升了用户体验。
如图2所示,为本发明公开的一种提升MQ同步可靠性的方法实施例2的方法流程图,所述方法可以包括以下步骤:
S201、当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器;
在生产端向MQ发送数据的过程中,当发送数据失败时,通过在生产端设置的第一代理服务模块对发送失败的数据进行拦截,并将拦截到的发送失败的数据发送至消息重试投递服务器。
具体的,第一代理服务模块在向消息重试投递服务器发送拦截到的发送失败的数据时,可以通过远程过程调用将拦截到的发送失败的数据发送至消息重试投递服务器。
S202、消息重试投递服务器将接收到的发送失败的数据存储至数据库;
消息重试投递服务器在接收到生产端的第一代理服务模块发送的拦截到的发送失败的数据后,将接收到的发送失败的数据存储至数据库中。
S203、消息重试投递服务器对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端;
然后,消息重试投递服务器对存储在数据库中的生产者发送失败的数据进行轮询监听,将达到重新投递重试时间的数据通过MQ投递至消费端。
S204、当消费端接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若否,则将数据对应的重试次数加1,判断数据对应的重试次数是否大于预设次数,若否,则设置数据的重试时间,将设置的数据的重试时间发送至消息重试投递服务器;
在MQ向消费端投递消息重试投递服务器重新投递的达到重试时间的数据时,通过在消费端设置的第二代理服务模块拦截消息队列发送的数据,并判断消息队列发送的数据是否处理成功,如果数据未处理成功,则将数据对应的重试次数加1,然后判断数据对应的重试次数是否大于预设次数,当数据对应的重试次数未大于预设次数时,重新设置数据对应的重试时间,并将设置的数据的重试时间发送至消息重试投递服务器。
具体的,第二代理服务模块在向消息重试投递服务器发送数据的重试时间时,可以通过远程过程调用将数据的重试时间发送至息重试投递服务器。
S205、消息重试投递服务器基于数据的重试时间,在达到数据的重试时间时,将数据再次通过消息队列投递至消费端。
消息重试投递服务器在接收到第二代理服务模块发送数据的重试时间后,在对数据库中的数据进行监听轮询时,在达到数据的重试时间时,将数据再次通过消息队列投递至消费端。
综上所述,本实施例在上述实施例的基础上,当第二代理服务模块判断消息队列发送的数据未处理成功时,能够将数据对应的重试次数加1,并判断数据对应的重试次数是否大于预设次数,在重试次数未大于预设次数时,能够重新设置数据的重试时间并将重试时间发送至消息重试投递服务器,以使重试投递服务器在达到数据的重试时间时再次对数据进行投递,进一步提升了用户体验。
如图3所示,为本发明公开的一种提升MQ同步可靠性的方法实施例3的方法流程图,所述方法可以包括以下步骤:
S301、当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器;
在生产端向MQ发送数据的过程中,当发送数据失败时,通过在生产端设置的第一代理服务模块对发送失败的数据进行拦截,并将拦截到的发送失败的数据发送至消息重试投递服务器。
具体的,第一代理服务模块在向消息重试投递服务器发送拦截到的发送失败的数据时,可以通过远程过程调用将拦截到的发送失败的数据发送至消息重试投递服务器。
S302、消息重试投递服务器将接收到的发送失败的数据存储至数据库;
消息重试投递服务器在接收到生产端的第一代理服务模块发送的拦截到的发送失败的数据后,将接收到的发送失败的数据存储至数据库中。
S303、消息重试投递服务器对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端;
然后,消息重试投递服务器对存储在数据库中的生产者发送失败的数据进行轮询监听,将达到重新投递重试时间的数据通过MQ投递至消费端。
S304、当消费端接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若否,则将数据对应的重试次数加1,判断数据对应的重试次数是否大于预设次数,若是,则生成数据处理失败的反馈信息,并将数据处理失败的反馈信息发送至消息重试投递服务器;
在MQ向消费端投递消息重试投递服务器重新投递的达到重试时间的数据时,通过在消费端设置的第二代理服务模块拦截消息队列发送的数据,并判断消息队列发送的数据是否处理成功,如果数据未处理成功,则将数据对应的重试次数加1,然后判断数据对应的重试次数是否大于预设次数,当数据对应的重试次数大于预设次数时,生成数据处理失败的反馈信息,并将数据处理失败的反馈信息发送至消息重试投递服务器。
具体的,第二代理服务模块在向消息重试投递服务器发送数据处理失败的反馈信息时,可以通过远程过程调用将数据处理失败的反馈信息发送至息重试投递服务器。
S305、消息重试投递服务器基于接收到的数据处理失败的反馈信息将数据库中对应的数据设置为失败状态。
消息重试投递服务器在接收到第二代理服务模块发送的数据处理失败的反馈信息时,将数据库中对应的数据设置为失败状态。
综上所述,本实施例在上述实施例的基础上,当第二代理服务模块判断数据对应的重试次数大于预设次数时,能够生成数据处理失败的反馈信息,并将数据处理失败的反馈信息发送至消息重试投递服务器,以使重试投递服务器基于接收到的数据处理失败的反馈信息将数据库中对应的数据设置为失败状态,进一步提升了用户体验。
如图4所示,为本发明公开的一种提升MQ同步可靠性的系统实施例1的结构示意图,所述系统可以包括:位于生产端41的第一代理服务模块411、消息重试投递服务器42和位于消费端43的第二代理服务模块431;
第一代理服务模块411,用于当生产端41向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器42;
消息重试投递服务器42,用于将接收到的发送失败的数据存储至数据库;
消息重试投递服务器42,还用于对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端43;
第二代理服务模块431,用于当消费端43接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若是,则生成数据处理成功的反馈信息,并将数据处理成功的反馈信息发送至消息重试投递服务器42;
消息重试投递服务器42,还用于基于接收到的数据处理成功的反馈信息将数据库中对应的数据设置为成功状态。
本实施例公开的提升MQ同步可靠性的系统的工作原理与上述提升MQ同步可靠性的方法实施例1的工作原理相同,在此不再赘述。
如图5所示,为本发明公开的一种提升MQ同步可靠性的系统实施例2的结构示意图,所述系统可以包括:位于生产端51的第一代理服务模块511、消息重试投递服务器52和位于消费端53的第二代理服务模块531;
第一代理服务模块511,用于当生产端51向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器52;
消息重试投递服务器52,用于将接收到的发送失败的数据存储至数据库;
消息重试投递服务器52,还用于对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端53;
第二代理服务模块531,用于当消费端53接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若否,则将数据对应的重试次数加1,判断数据对应的重试次数是否大于预设次数,若否,则设置数据的重试时间,将设置的数据的重试时间发送至消息重试投递服务器52;
消息重试投递服务器52,还用于基于数据的重试时间,在达到数据的重试时间时,将数据再次通过消息队列投递至消费端。
本实施例公开的提升MQ同步可靠性的系统的工作原理与上述提升MQ同步可靠性的方法实施例2的工作原理相同,在此不再赘述。
如图6所示,为本发明公开的一种提升MQ同步可靠性的系统实施例3的结构示意图,所述系统可以包括:位于生产端61的第一代理服务模块611、消息重试投递服务器62和位于消费端63的第二代理服务模块631;
第一代理服务模块61,用于当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将发送失败的数据发送至消息重试投递服务器;
消息重试投递服务器62,用于将接收到的发送失败的数据存储至数据库;
消息重试投递服务器62,还用于对数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过消息队列投递至消费端63;
第二代理服务模块631,用于当消费端63接收消息队列发送的数据时,拦截消息队列发送的数据,并判断数据是否处理成功,若否,则将数据对应的重试次数加1,判断数据对应的重试次数是否大于预设次数,若是,则生成数据处理失败的反馈信息,并将数据处理失败的反馈信息发送至消息重试投递服务器62;
消息重试投递服务器62,还用于基于接收到的数据处理失败的反馈信息将数据库中对应的数据设置为失败状态。
本实施例公开的提升MQ同步可靠性的系统的工作原理与上述提升MQ同步可靠性的方法实施例3的工作原理相同,在此不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种提升MQ同步可靠性的方法,其特征在于,包括:
当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将所述发送失败的数据发送至消息重试投递服务器;
所述消息重试投递服务器将接收到的所述发送失败的数据存储至数据库;
所述消息重试投递服务器对所述数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过所述消息队列投递至消费端;
当所述消费端接收所述消息队列发送的数据时,拦截所述消息队列发送的所述数据,并判断所述数据是否处理成功,若是,则生成所述数据处理成功的反馈信息,并将所述数据处理成功的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器基于接收到的所述数据处理成功的反馈信息将所述数据库中对应的数据设置为成功状态。
2.根据权利要求1所述的方法,其特征在于,还包括:
当判断所述数据未处理成功时,将所述数据对应的重试次数加1,判断所述数据对应的重试次数是否大于预设次数,若否,则设置所述数据的重试时间,将设置的所述数据的重试时间发送至所述消息重试投递服务器;
所述消息重试投递服务器基于所述数据的重试时间,在达到所述数据的重试时间时,将所述数据再次通过所述消息队列投递至消费端。
3.根据权利要求2所述的方法,其特征在于,还包括:
当所述数据对应的重试次数大于预设次数时,生成所述数据处理失败的反馈信息,并将所述数据处理失败的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器基于接收到的所述数据处理失败的反馈信息将所述数据库中对应的数据设置为失败状态。
4.根据权利要求1所述的方法,其特征在于,所述将所述发送失败的数据发送至消息重试投递服务器,包括:
将所述发送失败的数据通过远程过程调用发送至消息重试投递服务器。
5.根据权利要求1所述的方法,其特征在于,所述将所述数据处理成功的反馈信息发送至所述消息重试投递服务器,包括:
将所述数据处理成功的反馈信息通过远程过程调用发送至所述消息重试投递服务器。
6.一种提升MQ同步可靠性的系统,其特征在于,包括:位于生产端的第一代理服务模块、消息重试投递服务器和位于消费端的第二代理服务模块;其中:
所述第一代理服务模块,用于当生产端向消息队列发送数据失败时,拦截发送失败的数据,并将所述发送失败的数据发送至消息重试投递服务器;
所述消息重试投递服务器,用于将接收到的所述发送失败的数据存储至数据库;
所述消息重试投递服务器,还用于对所述数据库中的发送失败的数据进行监听,并将达到重试时间的数据通过所述消息队列投递至消费端;
所述第二代理服务模块,用于当所述消费端接收所述消息队列发送的数据时,拦截所述消息队列发送的所述数据,并判断所述数据是否处理成功,若是,则生成所述数据处理成功的反馈信息,并将所述数据处理成功的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器,还用于基于接收到的所述数据处理成功的反馈信息将所述数据库中对应的数据设置为成功状态。
7.根据权利要求6所述的系统,其特征在于,所述第二代理服务模块还用于:
当判断所述数据未处理成功时,将所述数据对应的重试次数加1,判断所述数据对应的重试次数是否大于预设次数,若否,则设置所述数据的重试时间,将设置的所述数据的重试时间发送至所述消息重试投递服务器;
所述消息重试投递服务器,还用于基于所述数据的重试时间,在达到所述数据的重试时间时,将所述数据再次通过所述消息队列投递至消费端。
8.根据权利要求7所述的系统,其特征在于,所述第二代理服务模块还用于:
当所述数据对应的重试次数大于预设次数时,若是,则生成所述数据处理失败的反馈信息,并将所述数据处理失败的反馈信息发送至所述消息重试投递服务器;
所述消息重试投递服务器,还用于基于接收到的所述数据处理失败的反馈信息将所述数据库中对应的数据设置为失败状态。
9.根据权利要求6所述的系统,其特征在于,所述第一代理服务模块在执行将所述发送失败的数据发送至消息重试投递服务器时,具体用于:
将所述发送失败的数据通过远程过程调用发送至消息重试投递服务器。
10.根据权利要求6所述的系统,其特征在于,所述第二代理服务模块在执行将所述数据处理成功的反馈信息发送至所述消息重试投递服务器时,具体用于:
将所述数据处理成功的反馈信息通过远程过程调用发送至所述消息重试投递服务器。
CN202011367026.1A 2020-11-27 2020-11-27 一种提升mq同步可靠性的方法和系统 Active CN112328418B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011367026.1A CN112328418B (zh) 2020-11-27 2020-11-27 一种提升mq同步可靠性的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011367026.1A CN112328418B (zh) 2020-11-27 2020-11-27 一种提升mq同步可靠性的方法和系统

Publications (2)

Publication Number Publication Date
CN112328418A true CN112328418A (zh) 2021-02-05
CN112328418B CN112328418B (zh) 2022-08-16

Family

ID=74309660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011367026.1A Active CN112328418B (zh) 2020-11-27 2020-11-27 一种提升mq同步可靠性的方法和系统

Country Status (1)

Country Link
CN (1) CN112328418B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064741A (zh) * 2021-04-07 2021-07-02 上海万物新生环保科技集团有限公司 一种消息队列重试方法及设备
CN113064736A (zh) * 2021-03-19 2021-07-02 北京房江湖科技有限公司 消息处理系统、方法、装置、电子设备和存储介质
CN113176967A (zh) * 2021-04-29 2021-07-27 北京奇艺世纪科技有限公司 数据的处理方法及装置、电子设备和计算机可读存储介质
CN113176960A (zh) * 2021-04-30 2021-07-27 中国邮政储蓄银行股份有限公司 数据处理方法及装置
CN113342546A (zh) * 2021-06-04 2021-09-03 湖南快乐阳光互动娱乐传媒有限公司 基于数据库保证消息可靠性的方法、装置和计算机系统
CN113505037A (zh) * 2021-06-24 2021-10-15 北京天九云电子商务有限公司 消息管理监控系统、方法、可读介质及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182173A (ja) * 1993-12-21 1995-07-21 Oki Electric Ind Co Ltd メッセージ保留方法
CN104731912A (zh) * 2015-03-24 2015-06-24 浪潮集团有限公司 一种消息中间件mq的消息传输方法和装置
CN105407180A (zh) * 2015-12-29 2016-03-16 曙光信息产业(北京)有限公司 服务器的消息推送方法和装置
CN106201735A (zh) * 2016-06-27 2016-12-07 北京票之家科技有限公司 消息传输方法及系统
CN107786607A (zh) * 2016-08-30 2018-03-09 腾讯科技(深圳)有限公司 一种消息重传方法、消息重传服务器及用户设备
CN111190747A (zh) * 2019-12-20 2020-05-22 北京金山云网络技术有限公司 用于消息队列的消息丢失检测方法和装置
CN111314422A (zh) * 2020-01-17 2020-06-19 平安医疗健康管理股份有限公司 基于kafka的消息处理方法、系统、存储介质及计算机设备
CN111884769A (zh) * 2020-08-06 2020-11-03 中国银行股份有限公司 消息同步方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07182173A (ja) * 1993-12-21 1995-07-21 Oki Electric Ind Co Ltd メッセージ保留方法
CN104731912A (zh) * 2015-03-24 2015-06-24 浪潮集团有限公司 一种消息中间件mq的消息传输方法和装置
CN105407180A (zh) * 2015-12-29 2016-03-16 曙光信息产业(北京)有限公司 服务器的消息推送方法和装置
CN106201735A (zh) * 2016-06-27 2016-12-07 北京票之家科技有限公司 消息传输方法及系统
CN107786607A (zh) * 2016-08-30 2018-03-09 腾讯科技(深圳)有限公司 一种消息重传方法、消息重传服务器及用户设备
CN111190747A (zh) * 2019-12-20 2020-05-22 北京金山云网络技术有限公司 用于消息队列的消息丢失检测方法和装置
CN111314422A (zh) * 2020-01-17 2020-06-19 平安医疗健康管理股份有限公司 基于kafka的消息处理方法、系统、存储介质及计算机设备
CN111884769A (zh) * 2020-08-06 2020-11-03 中国银行股份有限公司 消息同步方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113064736A (zh) * 2021-03-19 2021-07-02 北京房江湖科技有限公司 消息处理系统、方法、装置、电子设备和存储介质
CN113064741A (zh) * 2021-04-07 2021-07-02 上海万物新生环保科技集团有限公司 一种消息队列重试方法及设备
CN113064741B (zh) * 2021-04-07 2022-04-12 上海万物新生环保科技集团有限公司 一种消息队列重试方法及设备
CN113176967A (zh) * 2021-04-29 2021-07-27 北京奇艺世纪科技有限公司 数据的处理方法及装置、电子设备和计算机可读存储介质
CN113176967B (zh) * 2021-04-29 2023-08-15 北京奇艺世纪科技有限公司 数据的处理方法及装置、电子设备和计算机可读存储介质
CN113176960A (zh) * 2021-04-30 2021-07-27 中国邮政储蓄银行股份有限公司 数据处理方法及装置
CN113342546A (zh) * 2021-06-04 2021-09-03 湖南快乐阳光互动娱乐传媒有限公司 基于数据库保证消息可靠性的方法、装置和计算机系统
CN113505037A (zh) * 2021-06-24 2021-10-15 北京天九云电子商务有限公司 消息管理监控系统、方法、可读介质及电子设备

Also Published As

Publication number Publication date
CN112328418B (zh) 2022-08-16

Similar Documents

Publication Publication Date Title
CN112328418B (zh) 一种提升mq同步可靠性的方法和系统
CN112104519B (zh) 延迟消息的投递方法及装置、存储介质、计算机设备
CN109347934B (zh) 消息推送方法和系统以及服务器、存储介质和电子装置
CN111711697A (zh) 消息推送方法、装置、设备及存储介质
CN110933142A (zh) 一种icfs集群网卡监控方法、装置和设备及介质
CN109962827B (zh) 设备链路检测方法、装置、设备及可读存储介质
CN108631955A (zh) 一种确保消息发送可达的方法、系统和装置
CN111565135A (zh) 监控服务器运行的方法、监控服务器和存储介质
CN111541555A (zh) 群聊优化方法及相关产品
CN111200606A (zh) 深度学习模型任务处理方法、系统、服务器及存储介质
CN110333916B (zh) 请求消息处理方法、装置、计算机系统及可读存储介质
CN110138753B (zh) 分布式消息服务系统、方法、设备及计算机可读存储介质
CN113064740A (zh) 一种消息处理方法和装置
CN113010379A (zh) 电子设备监控系统
CN112751743B (zh) 消息发送异常的处理方法、消息发送装置和电子设备
WO2023116701A1 (zh) 基于物联网平台的数据信息推送方法、装置、设备及介质
CN113412478A (zh) 消息收发方法、通信装置以及程序
CN113098978B (zh) 一种数据传输方法、装置及介质
CN113794620A (zh) 消息发送方法、装置、设备、系统与存储介质
CN112333262A (zh) 数据更新提示方法、装置、计算机设备及可读存储介质
CN114585108A (zh) 连接处理方法及设备
US11968253B2 (en) Request delivery device, request delivery method, and request delivery program
CN114007111B (zh) 资源分发方法、装置、电子设备及存储介质
CN112688826B (zh) 链路诊断方法、终端设备、链路诊断系统和存储介质
CN107391282B (zh) 一种消息处理方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant