CN113703954A - 一种消息备份方法、装置、电子设备及计算机存储介质 - Google Patents
一种消息备份方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN113703954A CN113703954A CN202010434032.8A CN202010434032A CN113703954A CN 113703954 A CN113703954 A CN 113703954A CN 202010434032 A CN202010434032 A CN 202010434032A CN 113703954 A CN113703954 A CN 113703954A
- Authority
- CN
- China
- Prior art keywords
- source
- message queue
- target
- message
- task thread
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种消息备份方法、装置、电子设备及计算机可读存储介质。所述方法包括:通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。本申请能够实现将源消息队列集群中的消息复制至目标消息队列集群中,且通过利用源任务线程和目标任务线程,能够将从源消息队列集群拉取消息并存储至运行时进程的内存,和将运行时进程中存储的消息转发至目标消息队列集群的任务解耦,支持异构类型的消息集群之间的复制备份。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种消息备份方法、装置、电子设备及计算机存储介质。
背景技术
消息队列(MQ,Message Queue)就是消息在传输过程中用于保存消息的容器,在一次发送接收的通信过程中,其主要充当了“中转站”的角色,在消息队列的内部提供通信路由并保证消息的可靠传递。如果发送消息时接收者不可用,消息队列本身会在一段时间内保留积压的消息,直到可以成功地传递它。消息队列是构建各种重要的业务***时一款重要的中间件,在对业务***进行设计、选型和架构搭建时需要考虑消息队列的稳定性、可靠性和可用性。目前,消息队列已经逐渐成为企业IT***内部通信的核心手段之一,可以说当前绝大部分的大型分布式互联网业务***都基于消息队列来构建的。消息队列具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列的功能,是异步通信的主要手段之一。
随着分布式协调组件ZooKeeper和Raft算法的出现,多副本特性已经成为消息中间件所必备的一个特性。目前,开源消息队列Kafka采用ZooKeeper组件来实现同一个集群内部多副本之间协调选主节点,做到如果出现某一个或者几个副本节点所在的虚拟机或者容器宕机的情况下,靠ZooKeeper组件依然可以从剩余的副本节点中选出主节点。而开源消息队列RocketMQ则采用了非依赖第三方组件(比如ZooKeeper)的方式,通过自己在存储层实现Raft算法协议来做到选主节点和日志消息复制的目标,以达到同一个集群内各个节点做到高可用的目的。但上述两款开源中间件的多副本特性,只是保证了同一个集群内部消息的高可用,但如果出现整个消息队列集群节点均宕机的情况,消息队列服务依旧无法对外提供消息服务。
在一种相关方案中,采用开源版本Kafka的MirrorMaker实现跨消息队列集群的同步复制。该开源版本消息队列组件的整体方案通过采用一个中间进程实现跨消息队列集群的消息复制与同步,该中间进程既是消息的消费者,也是消息的发送者。在采用此实施方式时,用于跨集群消息队列同步的进程为单进程实例,当该单进程实例出现内存溢出、进程僵死、所部署的机器宕机和进程中的队列阻塞等异常情况时,消息跨集群复制与备份将无法继续进行,严重影响消息队列集群的可用性。而且,该实施方式中消息复制与备份都在同一个进程中完成,效率较低,无法像分布式集群部署那样充分利用各个节点任务调度的优势,实现消息复制和备份整体的高吞吐量、低延迟和高并发特点。
在另一种相关方案中,采用开源版本ActiveMQ的NetworkBridge实现跨集群消息队列的同步复制。该开源版本的消息队列组件目前只能支持同类型消息队列集群的消息备份复制,即仅限于支持源消息队列和目标待备份的集群均为ActiveMQ的消息队列集群的跨集群消息的复制和备份。该方案不支持异构类型的消息队列集群的消息复制与备份,如果用户有把源消息队列集群的消息迁移、备份至异构类型消息队列集群,则该方案是无法支持和实现的。比如,用户使用的原始消息队列为ActiveMQ消息队列,而待备份、迁移和复制的目标消息队列集群为RocketMQ或者Kafka时,则该方法无法实现跨集群消息的复制和备份。
综上所述,目前的跨消息队列集群的消息复制与备份方案存在可靠性和可用性较低、无法实现异构类型的消息队列集群之间的消息迁移和备份等问题。
发明内容
为解决上述技术问题,本申请实施例提供了一种消息备份方法及装置。
本申请实施例提供的消息备份方法,包括:
通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;
通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;
其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。
在本申请一可选实施方式中,所述源任务线程支持所述源消息队列集群的数据格式和传输协议,所述目标任务线程支持所述目标消息队列集群的数据格式和传输协议。
在本申请一可选实施方式中,所述源任务线程和所述目标任务线程属于消息队列连接器中的线程;所述方法还包括:
通过所述消息队列连接器生成多个源任务和多个目标任务;其中,所述多个源任务中的每个源任务通过一个源任务线程进行处理,所述多个目标任务中的每个目标任务通过一个目标任务线程进行处理。
在本申请一可选实施方式中,所述消息队列连接器用于维护多个消息队列集群的配置信息;其中,所述多个消息队列集群至少包括所述源消息队列集群和所述目标消息队列集群。
在本申请一可选实施方式中,所述方法还包括:
通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理。
在本申请一可选实施方式中,所述通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理,包括:
通过所述运行时进程订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;
通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
在本申请一可选实施方式中,所述方法还包括:
通过所述运行时进程向所述源消息队列集群的目标主题发送所述运行时进程的心跳信息和任务线程信息。
本申请实施例还提供一种消息备份装置,所述装置包括:
第一获取单元,用于通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;
第二获取单元,用于通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;
其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。
在本申请一可选实施方式中,所述装置还包括:
管理单元,用于通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理。
在本申请一可选实施方式中,管理单元还用于通过所述运行时进程订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
本申请实施例提供一种电子设备,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行上述消息备份方法。
本申请实施例提供一种计算机可读存储介质,用于存储计算机程序,所述计算机程序使得计算机执行上述消息备份方法。
本申请实施例的技术方案中,通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。如此,能够实现将源消息队列集群中的消息复制至目标消息队列集群中,且通过利用源任务线程和目标任务线程,能够将从源消息队列集群拉取并解析消息数据存储至运行时进程内存的任务,以及将运行时进程中存储的消息数据转发至目标消息队列集群的任务解耦,实现异构类型的消息队列集群之间消息的备份;使源消息队列集群出现整体故障宕机的情况时,业务端仍然可以从目标消息队列集群中消费消息。此外,由多个源任务线程和多个目标任务线程并行运行实现对消息队列集群中消息的解析和转发,能够提高消息复制和备份的效率和吞吐量。
附图说明
图1为本申请实施例提供的技术方案的总体架构图;
图2为本申请实施例提供的消息备份方法流程图;
图3为本申请实施例提供的运行时进程进行负载均衡管理的示意图一;
图4为本申请实施例提供的运行时进程进行负载均衡管理的示意图二;
图5为本申请实施例提供的运行时进程发送和获取运行时进程的心跳信息和任务线程信息的示意图;
图6为本申请实施例提供的运行时进程进行负载均衡管理的逻辑流程图;
图7为本申请实施例提供的一种消息备份装置示意图;
图8为本申请实施例提供的一种电子设备示意性结构图;
图9为本申请实施例的芯片的示意性结构图。
具体实施方式
为了能够更加详尽地了解本申请实施例的特点与技术内容,下面结合附图对本申请实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本申请实施例。
图1为本申请实施例提供的技术方案的总体架构图。图1中,在运行时进程组成的集群中,通过消息队列连接器和端到端的复制任务线程,将源消息队列集群中各个用户创建的主题(Topic)中的业务数据(即消息)以数据解析和转储的方式异步复制至目标消息队列集群,完成跨消息队列集群的消息备份。本申请实施例的技术方案解决了即使源消息队列集群出现整体故障宕机的情况时,业务端仍然可以从目标消息队列集群中消费消息的场景。同时,本申请实施例的技术方案中,消息队列连接器和端到端的复制任务线程与运行时进程并不紧密耦合,通过将端到端的复制任务线程分为源任务线程和目标任务线程,可以实现源消息队列集群和目标消息队列集群为异构类型的跨消息队列集群的消息备份。
图2为本申请实施例提供的消息备份方法流程图,如图2所示,所述方法包括如下步骤:
S201:通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中。
具体的,所述源任务线程对源消息队列集群中获取消息,并进行数据解析,得到相关的消息数据,进而通过与源消息队列集群对应的接口将得到的消息数据发送至运行时进程的内存中。
S202:通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中。
具体的,所述目标任务线程用于从运行时进程的内存中获取消息数据,并通过与目标消息队列集群对应的接口方法将消息数据转储至目标消息队列集群中。
需要说明的是,本申请实施例中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同,即所述源消息队列集群和所述目标消息队列集群为异构类型的消息队列集群。
本申请实施例中,一方面,所述源任务线程支持所述源消息队列集群的数据格式和传输协议,从而可以实现通过所述源任务线程从所述源消息队列集群中获取消息。另一方面,所述目标任务线程支持所述目标消息队列集群的数据格式和传输协议,从而可以实现通过所述目标任务线程将消息转储至所述目标消息队列集群中。
需要说明的是,源任务线程和目标任务线程都属于端到端的复制任务线程,用于执行跨消息队列集群数据备份的数据解析和转储任务,无论是源任务还是目标任务,都会与具体的源消息队列集群数据分片相对应或与目标消息队列集群中的数据分片相对应。因此,与具体的分片对应后的任务称之为源任务或目标任务,其中,源任务的处理是指:通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;目标任务的处理是指:通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中。
本申请实施例中采用两种线程(即源任务线程和目标任务线程)主要考虑以下两点:
(1)支持对异构类型的消息队列集群的复制备份。
源任务线程负责从源消息队列集群中执行数据获取和解析任务,因此其只需要适配和遵循源消息队列集群的数据格式和协议即可(比如RocketMQ、Kafka、ActiveMQ和RabbitMQ)。同理,目标任务线程是将从运行时进程的内存中获取到的消息数据转储至目标消息队列集群,所以它也只需要适配和遵循目标消息队列集群的数据协议即可。这样,就可以将从源消息队列集群获取和解析消息数据的任务,以及将运行时进程内存中消息数据转储至目标消息队列集群的任务解耦,方便实现异构类型的消息队列集群之间消息数据的复制和备份。
(2)提高消息复制和备份的效率和吞吐量。
无论是源任务还是目标任务,都会与具体的源消息队列集群数据分片相对应或与目标消息队列集群中的数据分片相对应,并且可以根据配置定义的情况进行分片或者任务线程的弹性扩缩以对源消息队列集群中的消息(例如存储在消息队列集群主题中的消息)进行并行地解析和转发。这样,可以提高从源消息队列集群到目标消息队列集群对消息数据复制、备份的效率,增大吞吐量。
本申请一可选实施方式中,所述源任务线程和所述目标任务线程属于消息队列连接器中的线程;所述方法还包括:
通过所述消息队列连接器生成多个源任务和多个目标任务;其中,所述多个源任务中的每个源任务通过一个源任务线程进行处理,所述多个目标任务中的每个目标任务通过一个目标任务线程进行处理。
本申请一可选实施方式中,所述消息队列连接器用于维护多个消息队列集群的配置信息;其中,所述多个消息队列集群至少包括所述源消息队列集群和所述目标消息队列集群。
具体的,消息队列连接器是一种逻辑概念,主要负责维护消息队列集群的相关配置信息,所述配置信息包括消息队列集群的链接地址、需要同步的数据等信息;在连接器实例被启动后能够根据预先定义的所述配置信息,对需要备份的消息数据需要进行的数据解析任务和转发任务进行合理的拆分,生成若干个任务实例,其中,多个源任务中的每个源任务通过一个源任务线程进行处理,所述多个目标任务中的每个目标任务通过一个目标任务线程进行处理,达到提高消息复制的并行度、提升处理效率的目的。
本申请一可选实施方式中,所述消息备份方法还包括:
通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理。
需要说明的是,本申请实施例中,运行时进程与具体的消息同步复制任务的业务逻辑无关,只负责具体的消息队列连接器、源任务线程和目标任务线程的分布式管理。
本申请一可选实施方式中,通过所述运行时进程订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;
通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
本申请实施例中,运行时进程集群中包括多个运行时进程,其中的每个运行时进程都能够订阅所述源消息队列集群的目标主题,接收源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;基于以上步骤,运行时进程集群中每个运行时进程都能确定其它运行时进程的当前状态和调度至各运行时进程上的任务线程信息,即获得运行时进程集群环境的全局视图信息。
通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
具体的,运行时进程根据获取的多个运行时进程的心跳信息和任务线程信息,能够计算出自身能够分配的任务,以实现对源任务线程和/或目标任务线程的调度,实现对所述源任务线程和所述目标任务线程进行负载均衡管理。
可选的,运行时进程对源任务线程和/或目标任务线程的调度和分配信息可以通过运行时进程发送至源消息队列集群中进行存储。
上述方案中,所述源消息队列集群的目标主题可以但不局限于是所述源消息队列集群的默认主题。
图3为本申请实施例提供的运行时进程进行负载均衡管理的示意图一。图3中,运行时进程集群中共包括运行时进程1、运行时进程2、运行时进程3个运行时进程,当运行时进程集群中新增加一个运行时进程4后,运行时进程4订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,根据所述多个运行时进程的心跳信息和任务线程信息,确定自身能够被分配的任务3-1,进而执行任务3-1,实现对源任务线程和目标任务线程的负载均衡管理。
图4为本申请实施例提供的运行时进程进行负载均衡管理的示意图二。图4中,运行时进程集群中共包括运行时进程1、运行时进程2、运行时进程3个运行时进程,当运行时进程集群中运行时进程3宕机后,运行时进程1和运行时进程2订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,根据所述多个运行时进程的心跳信息和任务线程信息。其中,运行时进程1分配到任务3-2,进而执行任务3-2,运行时进程2分配到任务3-1,进而执行任务3-1,实现对源任务线程和目标任务线程的负载均衡管理。
本申请实施例中,通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理时需要每个运行时进程动态感知并管理整个运行时进程集群中当前处于活动状态的其它运行时进程。
在一种实施方式中,采用第三方组件(如ZooKeeper、etcd或数据库)保存运行时进程集群中各运行时进程的当前在线状态,但是采用此实施方式会增加方案涉及的复杂性,并对消息队列集群的实际部署和运维工作造成负担。
本申请一可选实施方式中,通过所述运行时进程向所述源消息队列集群的目标主题发送所述运行时进程的心跳信息和任务线程信息。
图5为本申请实施例提供的运行时进程发送和获取运行时进程的心跳信息和任务线程信息的示意图。
具体的,所述运行时进程周期性的向所述源消息队列集群的目标主题发送所述运行时进程的心跳信息和任务线程信息,其中,运行时进程向源消息队列集群的目标主题发送的心跳信息用于维护自身的活跃状态。运行时进程通过源消息队列集群本身具有的消息的发布和订阅能力,订阅目标主题,即可实时的接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息。相应的,当运行时进程集群中有新的运行时进程加入或原有运行时进程出现故障而宕机时,运行时进程集群中其它正常工作的运行时进程均可动态感知到集群中所有运行时进程的状态变化信息,实现对运行时进程集群中各运行时进程的在线状态管理。
图6为本申请实施例提供的运行时进程进行负载均衡管理的逻辑流程图。
如图6所示,源消息队列的目标主题定义为“***默认的主题(Topic)”,运行时进程通过订阅***默认的主题(Topic)能够从源消息队列集群中正常运行的运行时进程信息,同时还能从集群中获取配置信息,其中,所述配置信息包括多个运行时进程的消息队列连接器(Connector)和任务(Task)线程信息。运行时进程根据运行时进程集群中的“所有运行时进程”、“当前进程”、消息队列连接器(Connector)和任务(Task)线程信息即可计算出可以分配至当前运行时进程的任务。
本申请实施例的技术方案解决了即使源消息队列集群出现整体故障宕机的情况时,业务端仍然可以从目标消息队列集群中消费消息的场景。通过利用源任务线程和目标任务线程,能够将从源消息队列集群拉取并解析消息数据存储至运行时进程内存,和将运行时进程中存储的消息数据转发至目标消息队列集群的任务解耦,支持异构类型的消息集群之间复制备份,还能够提高消息复制和备份的效率和吞吐量。
图7为本申请实施例提供的一种消息备份装置示意图,如图7所示,所述装置包括:
第一获取单元701,用于通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;
第二获取单元702,用于通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;
其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。
本申请一可选实施方式中,所述源任务线程支持所述源消息队列集群的数据格式和传输协议,所述目标任务线程支持所述目标消息队列集群的数据格式和传输协议。
本申请一可选实施方式中,所述源任务线程和所述目标任务线程属于消息队列连接器中的线程;所述装置还包括:
生成单元703,用于通过所述消息队列连接器生成多个源任务和多个目标任务;其中,所述多个源任务中的每个源任务通过一个源任务线程进行处理,所述多个目标任务中的每个目标任务通过一个目标任务线程进行处理。
本申请一可选实施方式中,所述消息队列连接器用于维护多个消息队列集群的配置信息;其中,所述多个消息队列集群至少包括所述源消息队列集群和所述目标消息队列集群。
本申请一可选实施方式中,所述装置还包括:
管理单元704,用于通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理。
本申请一可选实施方式中,所述管理单元704具体用于通过所述运行时进程订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
本申请一可选实施方式中,所述装置还包括:
发送单元705,用于通过所述运行时进程向所述源消息队列集群的目标主题发送所述运行时进程的心跳信息和任务线程信息。
本领域技术人员应当理解,图7所示的消息备份装置中的各单元的实现功能可参照前述消息备份方法的相关描述而理解。图7所示的消息备份装置中的各单元的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现。
图8是本申请实施例提供的一种电子设备示意性结构图。该电子设备可以是服务器,该电子设备包括图7所示的数据处理装置,图8所示的电子设备800包括处理器810,处理器810可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。
可选地,如图8所示,电子设备800还可以包括存储器820。其中,处理器810可以从存储器820中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器820可以是独立于处理器810的一个单独的器件,也可以集成在处理器810中。
可选地,如图8所示,电子设备800还可以包括收发器830,处理器810可以控制该收发器830与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。
其中,收发器830可以包括发射机和接收机。收发器830还可以进一步包括天线,天线的数量可以为一个或多个。
可选地,该电子设备800具体可为本申请实施例的网络设备,并且该电子设备800可以实现本申请实施例的各个方法中由网络设备实现的相应流程,为了简洁,在此不再赘述。
可选地,该电子设备800具体可为本申请实施例的移动终端/终端设备,并且该电子设备800可以实现本申请实施例的各个方法中由移动终端/终端设备实现的相应流程,为了简洁,在此不再赘述。
图9是本申请实施例的芯片的示意性结构图。图9所示的芯片900包括处理器910,处理器910可以从存储器中调用并运行计算机程序,以实现本申请实施例中的方法。
可选地,如图9所示,芯片900还可以包括存储器920。其中,处理器910可以从存储器920中调用并运行计算机程序,以实现本申请实施例中的方法。
其中,存储器920可以是独立于处理器910的一个单独的器件,也可以集成在处理器910中。
可选地,该芯片900还可以包括输入接口930。其中,处理器910可以控制该输入接口930与其他设备或芯片进行通信,具体地,可以获取其他设备或芯片发送的信息或数据。
可选地,该芯片900还可以包括输出接口940。其中,处理器910可以控制该输出接口940与其他设备或芯片进行通信,具体地,可以向其他设备或芯片输出信息或数据。
可选地,该芯片可应用于本申请实施例中的网络设备,并且该芯片可以实现本申请实施例的各个方法中由网络设备实现的相应流程,为了简洁,在此不再赘述。
可选地,该芯片可应用于本申请实施例中的移动终端/终端设备,并且该芯片可以实现本申请实施例的各个方法中由移动终端/终端设备实现的相应流程,为了简洁,在此不再赘述。
应理解,本申请实施例提到的芯片还可以称为***级芯片,***芯片,芯片***或片上***芯片等。
应理解,本申请实施例的处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital SignalProcessor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DR RAM)。应注意,本文描述的***和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
应理解,上述存储器为示例性但不是限制性说明,例如,本申请实施例中的存储器还可以是静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)以及直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)等等。也就是说,本申请实施例中的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例还提供了一种计算机可读存储介质,用于存储计算机程序。
可选的,该计算机可读存储介质可应用于本申请实施例中的网络设备,并且该计算机程序使得计算机执行本申请实施例的各个方法中由网络设备实现的相应流程,为了简洁,在此不再赘述。
可选地,该计算机可读存储介质可应用于本申请实施例中的移动终端/终端设备,并且该计算机程序使得计算机执行本申请实施例的各个方法中由移动终端/终端设备实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序产品,包括计算机程序指令。
可选的,该计算机程序产品可应用于本申请实施例中的网络设备,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由网络设备实现的相应流程,为了简洁,在此不再赘述。
可选地,该计算机程序产品可应用于本申请实施例中的移动终端/终端设备,并且该计算机程序指令使得计算机执行本申请实施例的各个方法中由移动终端/终端设备实现的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种计算机程序。
可选的,该计算机程序可应用于本申请实施例中的网络设备,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由网络设备实现的相应流程,为了简洁,在此不再赘述。
可选地,该计算机程序可应用于本申请实施例中的移动终端/终端设备,当该计算机程序在计算机上运行时,使得计算机执行本申请实施例的各个方法中由移动终端/终端设备实现的相应流程,为了简洁,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,)ROM、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (12)
1.一种消息备份方法,其特征在于,所述方法包括:
通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;
通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;
其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。
2.根据权利要求1所述的方法,其特征在于,所述源任务线程支持所述源消息队列集群的数据格式和传输协议,所述目标任务线程支持所述目标消息队列集群的数据格式和传输协议。
3.根据权利要求1所述的方法,其特征在于,所述源任务线程和所述目标任务线程属于消息队列连接器中的线程;所述方法还包括:
通过所述消息队列连接器生成多个源任务和多个目标任务;其中,所述多个源任务中的每个源任务通过一个源任务线程进行处理,所述多个目标任务中的每个目标任务通过一个目标任务线程进行处理。
4.根据权利要求3所述的方法,其特征在于,所述消息队列连接器用于维护多个消息队列集群的配置信息;其中,所述多个消息队列集群至少包括所述源消息队列集群和所述目标消息队列集群。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理。
6.根据权利要求5所述的方法,其特征在于,所述通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理,包括:
通过所述运行时进程订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;
通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
通过所述运行时进程向所述源消息队列集群的目标主题发送所述运行时进程的心跳信息和任务线程信息。
8.一种消息备份装置,其特征在于,所述装置包括:
第一获取单元,用于通过源任务线程从源消息队列集群中获取消息,将所述消息发送至运行时进程的内存中;
第二获取单元,用于通过目标任务线程从所述运行时进程的内存中获取所述消息,将所述消息转储至目标消息队列集群中;
其中,所述源消息队列集群和所述目标消息队列集群支持的数据格式和/或传输协议不同。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
管理单元,用于通过所述运行时进程对所述源任务线程和所述目标任务线程进行负载均衡管理。
10.根据权利要求9所述的装置,其特征在于,管理单元还用于通过所述运行时进程订阅所述源消息队列集群的目标主题,接收所述源消息队列集群的目标主题保存的多个运行时进程的心跳信息和任务线程信息,所述任务线程信息包括源任务线程信息和/或目标任务线程信息;通过所述运行时进程根据所述多个运行时进程的心跳信息和任务线程信息,确定所述运行时进程能够被分配的源任务和/或目标任务。
11.一种电子设备,其特征在于,包括:处理器和存储器,该存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,执行如权利要求1至7中任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010434032.8A CN113703954A (zh) | 2020-05-21 | 2020-05-21 | 一种消息备份方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010434032.8A CN113703954A (zh) | 2020-05-21 | 2020-05-21 | 一种消息备份方法、装置、电子设备及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113703954A true CN113703954A (zh) | 2021-11-26 |
Family
ID=78645739
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010434032.8A Pending CN113703954A (zh) | 2020-05-21 | 2020-05-21 | 一种消息备份方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113703954A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090343A (zh) * | 2022-01-18 | 2022-02-25 | 北京华品博睿网络技术有限公司 | 一种基于桶粒度的跨集群复制***及方法 |
CN115238005A (zh) * | 2022-07-25 | 2022-10-25 | 中电金信软件有限公司 | 一种基于消息中间件集群的数据同步方法及*** |
CN115269725A (zh) * | 2022-07-25 | 2022-11-01 | 中电金信软件有限公司 | 一种基于消息中间件集群的数据同步方法及*** |
CN115866039A (zh) * | 2022-11-29 | 2023-03-28 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166589A (zh) * | 2013-05-17 | 2014-11-26 | 阿里巴巴集团控股有限公司 | 一种心跳包的处理方法和装置 |
US20160337465A1 (en) * | 2015-05-15 | 2016-11-17 | Cisco Technology, Inc. | Multi-datacenter message queue |
CN106878473A (zh) * | 2017-04-20 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、服务器集群及*** |
CN108196961A (zh) * | 2017-12-28 | 2018-06-22 | 广东蜂助手网络技术股份有限公司 | 一种异步消息处理方法、终端、***及存储介质 |
CN109298976A (zh) * | 2018-10-17 | 2019-02-01 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份***及方法 |
CN109840166A (zh) * | 2019-01-14 | 2019-06-04 | 京东数字科技控股有限公司 | 一种跨集群对象存储异步备份方法、装置和*** |
CN110086636A (zh) * | 2019-04-17 | 2019-08-02 | 平安科技(深圳)有限公司 | 一种基于mqtt的消息分发方法、服务器及存储介质 |
CN110290166A (zh) * | 2019-05-05 | 2019-09-27 | 平安科技(深圳)有限公司 | 跨集群数据交互方法、***、装置及可读存储介质 |
CN110309224A (zh) * | 2018-03-14 | 2019-10-08 | 华为技术有限公司 | 一种数据复制方法及装置 |
CN110417892A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 基于报文解析的数据复制链路优化方法及装置 |
-
2020
- 2020-05-21 CN CN202010434032.8A patent/CN113703954A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104166589A (zh) * | 2013-05-17 | 2014-11-26 | 阿里巴巴集团控股有限公司 | 一种心跳包的处理方法和装置 |
US20160337465A1 (en) * | 2015-05-15 | 2016-11-17 | Cisco Technology, Inc. | Multi-datacenter message queue |
CN106878473A (zh) * | 2017-04-20 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 一种消息处理方法、服务器集群及*** |
CN108196961A (zh) * | 2017-12-28 | 2018-06-22 | 广东蜂助手网络技术股份有限公司 | 一种异步消息处理方法、终端、***及存储介质 |
CN110309224A (zh) * | 2018-03-14 | 2019-10-08 | 华为技术有限公司 | 一种数据复制方法及装置 |
CN109298976A (zh) * | 2018-10-17 | 2019-02-01 | 成都索贝数码科技股份有限公司 | 一种异构数据库集群备份***及方法 |
CN109840166A (zh) * | 2019-01-14 | 2019-06-04 | 京东数字科技控股有限公司 | 一种跨集群对象存储异步备份方法、装置和*** |
CN110086636A (zh) * | 2019-04-17 | 2019-08-02 | 平安科技(深圳)有限公司 | 一种基于mqtt的消息分发方法、服务器及存储介质 |
CN110290166A (zh) * | 2019-05-05 | 2019-09-27 | 平安科技(深圳)有限公司 | 跨集群数据交互方法、***、装置及可读存储介质 |
CN110417892A (zh) * | 2019-07-31 | 2019-11-05 | 中国工商银行股份有限公司 | 基于报文解析的数据复制链路优化方法及装置 |
Non-Patent Citations (1)
Title |
---|
刘鹏;李宏敏;程清;刘镇京;: "多源异构数据库之间的实时同步复制技术", 中国科技信息, no. 16 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114090343A (zh) * | 2022-01-18 | 2022-02-25 | 北京华品博睿网络技术有限公司 | 一种基于桶粒度的跨集群复制***及方法 |
CN115238005A (zh) * | 2022-07-25 | 2022-10-25 | 中电金信软件有限公司 | 一种基于消息中间件集群的数据同步方法及*** |
CN115269725A (zh) * | 2022-07-25 | 2022-11-01 | 中电金信软件有限公司 | 一种基于消息中间件集群的数据同步方法及*** |
CN115238005B (zh) * | 2022-07-25 | 2023-04-28 | 中电金信软件有限公司 | 一种基于消息中间件集群的数据同步方法及*** |
CN115269725B (zh) * | 2022-07-25 | 2023-07-28 | 中电金信软件有限公司 | 一种基于消息中间件集群的数据同步方法及*** |
CN115866039A (zh) * | 2022-11-29 | 2023-03-28 | 北京达佳互联信息技术有限公司 | 消息处理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113703954A (zh) | 一种消息备份方法、装置、电子设备及计算机存储介质 | |
US11403152B2 (en) | Task orchestration method and system | |
US11108726B2 (en) | Message queues for rapid re-hosting of client devices | |
CN111343277B (zh) | 分布式数据存储方法、***、计算机设备和存储介质 | |
CN110019514B (zh) | 数据同步方法、装置以及电子设备 | |
EP2948875B1 (en) | Method and system for using a recursive event listener on a node in hierarchical data structure | |
JP2018505496A (ja) | データを同期する方法、機器、及びシステム | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN109739435B (zh) | 文件存储和更新方法及装置 | |
CN107682169B (zh) | 一种利用Kafka集群发送消息的方法和装置 | |
JP6615761B2 (ja) | 分散データグリッドにおいて非同期呼出をサポートするためのシステムおよび方法 | |
CN111770029B (zh) | 基于RabbitMQ和ActiveMQ的动态队列转发方法、***及存储介质 | |
US11223522B1 (en) | Context-based intelligent re-initiation of microservices | |
US20230396490A1 (en) | Containing a faulty stimulus in a content delivery network | |
CN108111630B (zh) | 一种Zookeeper集群***及其连接方法和*** | |
CN111884769A (zh) | 消息同步方法及装置 | |
US20160036942A1 (en) | Method, system, and apparatus for agent-based architecture for integrated mobile applications | |
CN113515357A (zh) | 集群环境下批量任务的执行方法及装置 | |
CN112417015A (zh) | 数据分发方法和装置、存储介质及电子装置 | |
CN112751893A (zh) | 一种消息轨迹数据的处理方法、装置及电子设备 | |
CN110569673A (zh) | 一种数据文件处理方法、装置、设备及储存介质 | |
CN111309552A (zh) | 业务日志采集***和方法 | |
CN111953760B (zh) | 数据同步方法、装置、多活***及存储介质 | |
US11277473B1 (en) | Coordinating breaking changes in automatic data exchange | |
US20230004427A1 (en) | Re-initiation of microservices utilizing context information provided via service calls |
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 |