CN110602250A - 数据同步方法、装置、服务器和终端设备 - Google Patents
数据同步方法、装置、服务器和终端设备 Download PDFInfo
- Publication number
- CN110602250A CN110602250A CN201910939061.7A CN201910939061A CN110602250A CN 110602250 A CN110602250 A CN 110602250A CN 201910939061 A CN201910939061 A CN 201910939061A CN 110602250 A CN110602250 A CN 110602250A
- Authority
- CN
- China
- Prior art keywords
- synchronized
- cloud platform
- server
- message queue
- data synchronization
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种数据同步方法、装置、服务器和终端设备,方法应用于服务器;方法包括:从预设的消息队列中获取待同步对象的对象标识;从第一云平台中读取对象标识对应的待同步对象;将读取到的待同步对象同步至第二云平台。该方式中,服务器中预先设置了消息队列,通过该消息队列实现多个云平台之间的数据同步,从而解决了因兼容性问题导致的平台见数据交互能力较差的问题,提高了数据同步时的传输速度和灵活性。进一步地,上述方式中,客户端向一个云平台上传对象后,服务器即可通过消息队列实现多个云平台之间的数据同步,这种客户端上传一份数据即可实现混合云之间的数据同步的方式,可以进一步提高数据传输速度,以及数据传输的灵活性。
Description
技术领域
本发明涉及云存储技术领域,尤其是涉及一种数据同步方法、装置、服务器和终端设备。
背景技术
相关技术中,在使用混合云存储数据时,由于混合云中的私有云平台和公有云平台的厂商不同,使得私有云平台和公有云平台之间很可能存在兼容性问题,该兼容性问题易导致私有云平台和公有云平台之间的相互切换和交互能力较差;数据在私有云平台和公有云平台进行同步时,易出现数据传输速度较慢、数据传输灵活性差的情况。
发明内容
有鉴于此,本发明的目的在于提供一种数据同步方法、装置、服务器和终端设备,以提高数据传输速度,增强数据传输的灵活性。
第一方面,本发明实施例提供了一种数据同步方法,方法应用于服务器,方法包括:从预设的消息队列中获取待同步对象的对象标识;其中,待同步对象的对象标识由客户端预先上传至消息队列;从第一云平台中读取对象标识对应的待同步对象;将读取到的待同步对象同步至第二云平台。
在本发明较佳的实施例中,上述将读取到的待同步对象同步至第二云平台的步骤之后,方法还包括:判断待同步对象是否成功同步至第二云平台;如果否,将待同步对象的对象标识发送至预设的备用队列;通过备用队列将待同步对象成功同步至第二云平台。
在本发明较佳的实施例中,上述通过备用队列将待同步对象成功同步至第二云平台的步骤,包括:按照预先配置的时间间隔,从备用队列中获取待同步对象的对象标识,继续执行从第一云平台中读取对象标识对应的待同步对象的步骤,直至待同步对象成功同步至第二云平台。
在本发明较佳的实施例中,上述将读取到的待同步对象同步至第二云平台的步骤之后,方法还包括:获取第一云平台和第二云平台的对象状态数据;其中,对象状态数据包括平台内存储的对象的对象标识;根据对象状态数据,输出状态监控日志;状态监控日志包括:第一云平台的对象标识总数、第二云平台的对象标识总数、和仅存储在第一云平台或第二云平台的对象的对象标识。
在本发明较佳的实施例中,上述第一云平台包括私有云平台,第二云平台包括公有云平台;或者,第一云平台包括公有云平台,第二云平台包括私有云平台。
第二方面,本发明实施例还提供一种数据同步方法,方法应用于终端设备,确定待同步对象;将待同步对象上传至第一云平台;将待同步对象的对象标识上传至服务器中预设的消息队列,以通过服务器从预设的消息队列中获取待同步对象的对象标识,从第一云平台中读取对象标识对应的待同步对象,将读取到的待同步对象同步至第二云平台。
在本发明较佳的实施例中,上述将待同步对象的对象标识上传至服务器中预设的消息队列的步骤,包括:判断待同步对象是否成功上传至第一云平台;如果是,将待同步对象的对象标识上传至服务器中预设的消息队列。
在本发明较佳的实施例中,上述将待同步对象的对象标识上传至服务器中预设的消息队列的步骤之后,方法还包括:判断待同步对象的对象标识是否成功上传至消息队列;如果否,从第一云平台中删除待同步对象。
第三方面,本发明实施例还提供一种数据同步装置,装置设置于服务器,装置包括:对象标识获取模块,用于从预设的消息队列中获取待同步对象的对象标识;其中,待同步对象的对象标识由客户端预先上传至消息队列;对象读取模块,用于从第一云平台中读取对象标识对应的待同步对象;对象同步模块,用于将读取到的待同步对象同步至第二云平台。
第四方面,本发明实施例还提供一种数据同步装置,装置设置于终端设备,装置包括:待同步对象确定模块,用于确定待同步对象;对象上传模块,用于将待同步对象上传至第一云平台;对象标识上传模块,用于将待同步对象的对象标识上传至服务器中预设的消息队列,以通过服务器从预设的消息队列中获取待同步对象的对象标识,从第一云平台中读取对象标识对应的待同步对象,将读取到的待同步对象同步至第二云平台。
第五方面,本发明实施例还提供一种服务器,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述数据同步方法的步骤。
第六方面,本发明实施例还提供一种终端设备,包括处理器和存储器,存储器存储有能够被处理器执行的计算机可执行指令,处理器执行计算机可执行指令以实现上述数据同步方法的步骤。
第七方面,本发明实施例还提供一种计算机可读存储介质计算机可读存储介质存储有计算机可执行指令,计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述数据同步方法的步骤。
本发明实施例带来了以下有益效果:
本发明实施例提供的数据同步方法、装置、服务器和终端设备,客户端将待同步对象上传至混合云中的一个云平台后,将待同步对象的对象标识上传至服务器的消息队列;再由服务器从该消息队列中获取待同步对象的对象标识,从第一云平台读取对象标识对应的待同步对象,进而将该待同步对象同步至第二云平台,该方式中,服务器中预先设置了消息队列,通过该消息队列实现多个云平台之间的数据同步,从而解决了因兼容性问题导致的平台见数据交互能力较差的问题,提高了数据同步时的传输速度和灵活性。
进一步地,上述方式中,客户端向一个云平台上传对象后,服务器即可通过消息队列实现多个云平台之间的数据同步,这种客户端上传一份数据即可实现混合云之间的数据同步的方式,可以进一步提高数据传输速度,以及数据传输的灵活性。
本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的数据同步方法的场景图;
图2为本发明实施例提供的一种数据同步方法的流程图;
图3为本发明实施例提供的另一种数据同步方法的流程图;
图4为本发明实施例提供的另一种数据同步方法的流程图;
图5为本发明实施例提供的另一种数据同步方法的流程图;
图6为本发明实施例提供的另一种数据同步方法的示意图;
图7为本发明实施例提供的一种数据同步装置的结构示意图;
图8为本发明实施例提供的另一种数据同步装置的结构示意图;
图9为本发明实施例提供的一种服务器或一种终端设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
云存储平台通常分为公有云和私有云。各大互联网厂商提供了各类公有云存储平台,如AWS(Amazon Web Services,亚马逊云服务),网易云,阿里云,华为云等,公有云的优势在于方便、快捷、扩展性好。同时,也可以基于本地的私有服务器搭建私有云,该私有云有安全性好、可用性高等优势。因此,结合具体的业务场景,企业常常会采取混合云的方案来解决需求。但是目前的云存储的同步方案在通用性、性能方面存在一定问题。
常用的云存储之间的数据同步方法有两种,一种是分别将文件同时上传到公有云和私有云,另一种是通过离线数据迁移管理。其中,第二种方法,通过离线数据迁移管理,通常只能够离线迁移,数据传输的实时性无法保证。前述第一种方法中,由于混合云中的私有云平台和公有云平台的厂商不同,私有云平台和公有云平台存在兼容性问题,又由于网络的IO(Input/Output,输入/输出)影响,例如网络不稳定,服务器宕机等各种外界影响等,导致私有云平台和公有云平台之间的相互切换和交互能力较差,无法保证混合云的数据一致性,同时,同一份数据要由客户端上传两次(分别上传到两个云存储),会导致该同步方法效率低下。
综上,用户在使用混合云存储数据时,数据在私有云平台和公有云平台进行同步时,易出现数据传输速度较慢、数据传输灵活性差的情况。基于此,本发明实施例提供的一种数据同步方法、装置、服务器和终端设备,该技术可以应用于各类场景下的数据同步、传输,并提出了一种通用的混合云的同步框架,该框架提供了通用的接口方案和存储同步模块。
为便于对本实施例进行理解,首先对本发明实施例所公开的一种数据同步方法进行详细介绍。本实施例中提供的方法应用于服务器,参见图1所示的一种数据同步方法的场景图,图1中的应用数据同步方法的服务器分别与第一云平台和第二云平台通信连接。本实施例的目的是通过服务器将数据由第一云平台同步到第二云平台中,服务器是提供计算服务的设备,云平台用于基于硬件资源和软件资源的服务。本实施例还可能涉及到客户端,该客户端可以安装在服务器上,也可以安装在用户终端上,该用户终端与服务器通信连接。
本实施例中的服务器用于数据的中转,第一云平台和第二云平台主要用于存储数据,第一云平台和第二云平台具体可以为:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算或者数据存储处理兼顾的综合云计算平台等各类私有云平台或公有云平台。
基于上述描述,参见图2所示的一种数据同步方法的流程图,该方法包括如下步骤:
步骤S202,从预设的消息队列中获取待同步对象的对象标识;其中,上述待同步对象的对象标识由客户端预先上传至消息队列。
消息队列是一种进程间通信或同一进程的不同线程间的通信方式,以软件贮列的方式处理一系列的数据输入,该数据输入通常是来自用户。在本实施例中,消息队列可以设置在服务器中,分别与第一云平台和第二云平台通信连接。消息队列需要预先获取待同步对象的对象标识,待同步对象是需要从第一云平台同步至第二云平台的数据,对象标识用于对待同步对象做出标记。一般来说,对象标识可以是待同步对象的数字编号,或者是待同步对象的名称等。
上述消息队列中,通常由一个生产者向该消息队列发送消息,一个消费者从该消息队列中获取消息;该生产者可以理解为上述向消息队列中上传对象标识的进程或线程;消费者可以理解为从上述消息队列中获取对象标识的进行或线程。基于Queue消息模型的消息队列,采用先进先出的方式处理消息队列中存储的上述对象标识,以保证对象标识的处理顺序性。当消费者确认某个对象标识被获取后,消费者向消息队列发送一个确认消息,消息队列则根据该确认消息删除对应的对象标识;如果消费者没有成功获取某个对象标识,消息队列就不会删除该对象标识。
客户端预存有待同步对象和待同步对象的对象标识,客户端将待同步对象上传至第一云平台后,客户端将对象标识上传到消息队列,也可以同时将待同步对象上传至第一云平台,将对象标识上传到消息队列。然后,由服务器从消息队列中获取对象标识。需要说明的是,客户端可以设置在服务器中,也可以设置在服务器外的其他终端设备上,如果客户端设置在其他终端设备上,终端设备与服务器、第一云平台和第二云平台均通信连接。
步骤S204,从第一云平台中读取上述对象标识对应的待同步对象。
由前述可知,待同步对象已经被客户端上传至第一云平台,服务器获得了对象标识之后,需要根据对象标识,直接从第一云平台读取该对象标识对应的对象,读取的对象即为待同步对象。读取的方法可以是服务器将对象标识发送至第一云平台,第一云平台根据该对象标识确定对应的待同步对象,并第一云平台将该带同步对象发送至服务器。
步骤S206,将读取到的待同步对象同步至第二云平台。
服务器根据对象标识从第一云平台读取待同步对象后,将该待同步对象同步至第二云平台,同步的方法可以是将该待同步对象发送至第二云平台。这样就完成了一个待同步对象在客户端上传至第一云平台后,从第一云平台将该待同步对象同步至第二云平台。
本发明实施例提供的一种数据同步方法,客户端将待同步对象上传至混合云中的一个云平台后,将待同步对象的对象标识上传至服务器的消息队列;再由服务器从该消息队列中获取待同步对象的对象标识,从第一云平台读取对象标识对应的待同步对象,进而将该待同步对象同步至第二云平台,该方式中,服务器中预先设置了消息队列,通过该消息队列实现多个云平台之间的数据同步,从而解决了因兼容性问题导致的平台见数据交互能力较差的问题,提高了数据同步时的传输速度和灵活性。
进一步地,上述方式中,客户端向一个云平台上传对象后,服务器即可通过消息队列实现多个云平台之间的数据同步,这种客户端上传一份数据即可实现混合云之间的数据同步的方式,可以进一步提高数据传输速度,以及数据传输的灵活性。
本发明实施例还提供另一种数据同步方法,该方法在上述实施例方法的基础上实现;该方法重点描述将读取到的待同步对象同步至第二云平台失败之后的具体处理方式。
如图3所示的另一种数据同步方法的流程图,该方法包括如下步骤:
步骤S302,从预设的消息队列中获取待同步对象的对象标识;其中,上述待同步对象的对象标识由客户端预先上传至消息队列。
通常,在进行数据同步之前,需要进行***的初始化。***的初始化包括:配置第一云平台和第二云平台的服务地址,启动消息队列,配置消息队列相关参数等。其中,消息队列的实现方式可以是Kafka、Redis、RabbitMQ等。
***初始化完成后,客户端可以先将待同步对象上传至第一云平台,然后将待同步对象的对象表示上传至消息队列。客户端在初始化的时候配置第一云平台和第二云平台的IP(Internet Protocol Address,互联网协议地址)地址以及对应的密码,通过该IP地址以及对应的密码进行数据通信。客户端还会配置服务器中消息队列的服务类型和地址,根据该服务类型和地址与消息队列进行数据通信。其中,服务类型可以为Kafka、Redis、RabbitMQ等。
本实施例中的第一云平台和第二云平台均可以为公有云平台和私有云平台,具体有以下几种可能:第一云平台包括私有云平台,第二云平台包括公有云平台;或者,第一云平台包括公有云平台,第二云平台包括私有云平台。上述公有云通常指第三方提供商为用户提供的能够使用的云,私有云通常是为一个客户单独使用而构建的云。这两种情况依次对应从私有云向公有云同步数据,和从公有云向私有云同步数据。
除了上述两种可能之外,还可以第一云平台和第二云平台均包括公有云平台,或者第一云平台和第二云平台均包括私有云平台;即公有云平台之间同步数据和私有云平台之间同步数据。因而本实施例提供的数据传输方法,可以适用于各类平台间的数据同步中,具有较高的通用性。
步骤S304,从第一云平台中读取上述对象标识对应的待同步对象。
具体而言,服务器预先获得第一云平台的IP地址和对应密码,根据该IP地址和密码以及对象标识,发送对象标识对应的读取指令,第一云平台根据该读取指令将上述对象标识对应的待同步对象发送至服务器中。
步骤S306,将读取到的待同步对象同步至第二云平台。
服务器预先获得第二云平台的IP地址和对应密码,因此,可以直接将带同步对象发送至第二云平台对应的IP地址中,即将该待同步对象同步至第二云平台。
步骤S308,判断上述待同步对象是否成功同步至第二云平台。如果是,则结束,如果否,则执行步骤S310。
在将待同步对象同步至第二云平台之后,第二云平台可以返回一个上传结果。该上传结果可以体现上述待同步对象是否成功同步至第二云平台,如果同步至第二云平台成功,则本次待同步对象的数据同步过程结束;如果同步至第二云平台失败,则需要在合适的时间重新将该待同步对象同步至第二云平台,即继续执行步骤S310。
步骤S310,将上述待同步对象的对象标识发送至预设的备用队列。
在同步至第二云平台失败后,需要在合适的时间重新进行同步。备用队列用于存储同步失败的待同步对象的对象标识,备用队列可以作为上述消息队列的一部分,也可以设置另外一个消息队列。
步骤S312,通过备用队列将待同步对象成功同步至第二云平台。
服务器根据预先设置的时间,获取备用队列中的对象标识,重新同步待同步对象,直至待同步对象成功同步至第二云平台。具体的重新同步待同步对象的步骤,可以通过以下步骤执行:按照预先配置的时间间隔,从备用队列中获取待同步对象的对象标识,继续执行从第一云平台中读取对象标识对应的待同步对象的步骤,直至待同步对象成功同步至第二云平台。
其中,时间间隔是指每隔多少时间重新将对象标识对应的待同步对象上传至第二云平台,时间间隔可以由人工预先根据经验设置。举例来说,可以预先配置一个配置文件,从配置文件读取时间间隔。另外需要说明的是,时间间隔并一定是固定时间,可以第一次间隔1小时,第二次间隔2小时等;还可以设定发送上限,即重新发送10次如果还没有成功同步,则认为无法同步,放弃之后的数据同步。
确定时间间隔后,按照时间间隔定时从备用队列中获取对象标识,将该对象标识对应的待同步对象重新从第一云平台中读取,然后将该待同步对象发送至第二云平台,直至该待同步对象发送至第二云平台成功。通过该方式可以进一步提高平台间数据同步的可靠性。
除此以外,还可以对第一云平台和第二云平台包括的对象进行监控,具体的监控方法可以通过步骤S31-步骤S32执行:
步骤S31,获取第一云平台和第二云平台的对象状态数据;其中,上述对象状态数据包括平台内存储的对象的对象标识。
进行监控的步骤可以通过服务器执行,对象状态数据可以包括该云平台内存储的对象的对象标识,当然还可以包括对象的大小、存储位置等信息。通过监控对象状态数据,可以确定第一云平台和第二云平台的对象是否相同,以及具有哪些区别。服务器检测一个云平台的对象状态数据,可以向该平台的IP地址发送相应的对象状态查询指令,该平台就会统计其存储的对象以及存储的对象对应的对象标识,并发送至服务器。
步骤S32,根据上述对象状态数据,输出状态监控日志;该状态监控日志包括:第一云平台的对象标识总数、第二云平台的对象标识总数、和仅存储在第一云平台或第二云平台的对象的对象标识。
服务器在获得第一云平台和第二云平台的对象状态数据之后,就可以确定第一云平台和第二云平台分别存储的对象以及存储的对象对应的对象标识,因此可以统计第一云平台和第二云平台的对象标识总数。服务器逐一对比第一云平台和第二云平台的对象状态数据,即可获得仅存储在第一云平台或第二云平台的对象的对象标识,也就是第一云平台和第二云平台不同步的对象的对象标识,据此可以输出状态监控日志。
第一云平台和第二云平台可以通过Bucket(存储空间)存储的对象,因此,上述对象状态数据还可以包括:Bucket的标识;状态监控日志还包括:第一云平台的Bucket总数、第二云平台的Bucket总数、和仅存在于第一云平台或第二云平台的Bucket。
上述方式中,对于同步至第二云平台失败的述待同步对象,由备用队列保存该述待同步对象的对象标识,按照预先配置的时间间隔,重新获取并同步该待同步对象;服务器可以检测第一云平台和第二云平台的对象状态数据,并据此输出状态监控日志,以检测第一云平台和第二云平台保存的对象和对象标识。该方式中,备用队列可以确保即使第一次同步待同步对象至第二云平台失败,还可以继续进行同步,增强数据同步的容错率和可靠性;对第一云平台和第二云平台进行状态监控,主要起通知的作用,保证用户及时知晓第一云平台和第二云平台的对象存储情况,数据同步的可靠性较强。
本发明实施例还提供另一种数据同步方法,该方法应用于终端设备,终端设备分别与服务器、第一云平台和第二云平台通信连接。该方法主要说明终端设备中的客户端将待同步对象和待同步对象的对象标识上传至第一云平台和消息队列的具体实现方式。
终端设备一般为电脑、手机、平板电脑可以与服务器进行通信的设备,终端设备需要预先安装客户端,终端设备通过客户端与第一云平台、第二云平台和服务器进行数据通信。
基于上述描述,参见图4所示的另一种数据同步方法的流程图,该方法包括如下步骤:
步骤S402,确定待同步对象。
终端设备通过客户端接收待同步对象和该待同步对象的对象标识,其中,待同步对象和该待同步对象的对象标识均由用户预先上传,或者,待同步对象和该待同步对象的对象标识已经预先保存在终端设备中,根据用户的指令,客户端读取待同步对象和待同步对象的对象标识。另一种实现方式中,用户可以仅上传待同步对象,客户端生成该待同步对象的对象标识。
步骤S404,将该待同步对象上传至第一云平台。
终端设备的客户端可以通过SDK(Software Development Kit,软件开发工具包)进行通信,该SDK可以安装客户端中,由SDK将用户上传的待同步对象发送至第一云平台。
步骤S406,将该待同步对象的对象标识上传至服务器中预设的消息队列,以通过服务器从上述预设的消息队列中获取待同步对象的对象标识,从第一云平台中读取对象标识对应的待同步对象,将读取到的待同步对象同步至第二云平台。
终端设备的客户端通过SDK将待同步对象发送至第一云平台后,将待同步对象对应的对象标识上传至服务器的消息队列。服务器会进行接下来的数据同步工作,即服务器从上述预设的消息队列中获取待同步对象的对象标识,从第一云平台中读取对象标识对应的待同步对象,将读取到的待同步对象同步至第二云平台。服务器的数据同步方法已经在上文说明过,这里不再赘述。
本发明实施例提供的另一种数据同步方法,终端设备的服务器将用户指定的待同步对象发送至第一云平台后,将待同步对象对应的对象标识上传至服务器的消息队列,服务器根据消息队列进行数据同步。该方式中,客户端向一个云平台上传对象后,服务器即可通过消息队列实现多个云平台之间的数据同步,这种客户端上传一份数据即可实现混合云之间的数据同步的方式,可以进一步提高数据传输速度,以及数据传输的灵活性。
本发明实施例还提供另一种数据同步方法,该方法在上述实施例方法的基础上实现;该方法重点描述将待同步对象的对象标识上传至服务器中预设的消息队列的具体实现方式。
基于上述描述,参见图5所示的另一种数据同步方法的流程图,该方法包括如下步骤:
步骤S502,接收用户上传的待同步对象和该待同步对象的对象标识。
步骤S504,将该待同步对象上传至第一云平台。
步骤S506,判断待同步对象是否成功上传至第一云平台。如果是,则执行步骤S508;如果否,则执行步骤S514。
确定该待同步对象是否上传至第一云平台成功,只有在上传成功后才会继续将带同步对象的对象标识发送到服务器的消息队列中;如果上传失败,则需要返回上传失败的消息,告知用户上传失败。当待同步对象成功上传至第一云平台,则第一云平台会向客户端发送对应的表示上传成功的消息,当客户端接收到表示上传成功的消息后,说明上传成功;否则,说明上传失败。
步骤S508,将待同步对象的对象标识上传至服务器中预设的消息队列。
步骤S510,判断待同步对象的对象标识是否成功上传至消息队列。如果否,则执行步骤S512;如果是,则结束。
在客户端将待同步对象的对象标识上传到客户端的消息队列后,同样需要确认是否上传成功,如果上传成功,则结束;如果上传失败,认为该次数据同步存在错误,放弃本次数据同步。当待同步对象的对象标识成功上传至消息队列,则该消息队列会向客户端发送对应的表示上传成功的消息,当客户端接收到表示上传成功的消息后,说明上传成功;否则,说明上传失败。
步骤S512,从第一云平台中删除待同步对象。
放弃本次数据同步需要将之前上传至第一云平台的带同步对象删除。举例来说,客户端向第一云平台发送将待同步对象删除的指令,第一云平台根据该指令删除待同步对象。在步骤的执行过程中,如果某一个步骤失败,除了会返回失败的消息之外,还会将失败的步骤回滚,即将第一云平台、第二云平台和消息队列返回至所有步骤执行前的状态,以保持数据的一致性。例如:待同步对象的对象标识没有从客户端成功上传至消息队列,则将该对象标识对应的待同步对象从第一云平台删除,保证该待同步对象既不存在于第一云平台,也不存在与第二云平台。
步骤S514,返回上传失败的消息。
第一云平台删除待同步对象之后,同样会返回给客户端一个上传失败的消息,以通知用户该次数据同步失败。
上述方式中,会首先判断待同步对象是否成功上传至第一云平台,其次判断待同步对象的对象标识是否成功上传至消息队列,对于不同的判断结果采取不同的措施,保证上传失败的时候可以及时提醒用户上传失败的结果,并且删除之前上传的数据,保证数据同步流程的完整性和可靠性,避免在数据同步过程中发生混乱。
对于设备终端和服务器的整体流程,以客户端首先上传到私有云,然后同步私有云到公有云为例:可以参见图6所示的一种数据同步方法的示意图,如图6所示:
步骤1,首先准备好私有云、公有云环境。启动消息队列模块,启动数据监控模块。客户端安装SDK,客户端初始化的时候需要配置私有云、公有云的IP地址、密码等,以及消息队列的服务类型、地址;
步骤2,客户端通过上述SDK,指定上传的对象以及上传的对象标识,并向私有云发起上传请求。
步骤3,若步骤2执行失败,则返回客户端失败,上传结束;若步骤2执行成功,则SDK将对象标识上传至消息队列模块;
步骤4,若步骤3执行失败,则删除私有云上传的对象,并返回客户端失败,上传结束;若步骤3执行成功,则返回客户端上传成功;
步骤5,存储同步模块从消息队列中实时获取对象标识,从私有云中读取,并根据私有云的对象标识,下载对象,并转发至公有云当中;
步骤6,若步骤5同步失败,则将对象标识转发到消息队列中的失败队列。存储同步模块会根据配置文件,定时从失败队列中获取对象标识,做再次同步;
步骤7,在启动后,定时获取私有云和公有云的对象标识,日志输出监控指标,如公有云的对象标识总数,私有云的对象标识总数,不同步的对象标识。
需要说明的是,上述各方法实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
对应于上述方法实施例,本发明实施例提供了一种数据同步装置,该装置设置于服务器,服务器分别与第一云平台和第二云平台通信连接;如图7所示的一种数据同步装置的结构示意图,该装置包括:
对象标识获取模块71,用于从预设的消息队列中获取待同步对象的对象标识;其中,待同步对象的对象标识由客户端预先上传至消息队列;
对象读取模块72,用于从第一云平台中读取对象标识对应的待同步对象;
对象同步模块73,用于将读取到的待同步对象同步至第二云平台。
本发明实施例提供的一种数据同步装置,客户端将待同步对象上传至混合云中的一个云平台后,将待同步对象的对象标识上传至服务器的消息队列;再由服务器从该消息队列中获取待同步对象的对象标识,从第一云平台读取对象标识对应的待同步对象,进而将该待同步对象同步至第二云平台,该方式中,服务器中预先设置了消息队列,通过该消息队列实现多个云平台之间的数据同步,从而解决了因兼容性问题导致的平台见数据交互能力较差的问题,提高了数据同步时的传输速度和灵活性。
进一步地,上述方式中,客户端向一个云平台上传对象后,服务器即可通过消息队列实现多个云平台之间的数据同步,这种客户端上传一份数据即可实现混合云之间的数据同步的方式,可以进一步提高数据传输速度,以及数据传输的灵活性。
在一些实施例中,上述装置还包括:第一判断模块,用于判断待同步对象是否成功同步至第二云平台;对象标识发送模块,用于如果否,将待同步对象的对象标识发送至预设的备用队列;备用队列同步模块,用于通过备用队列将待同步对象成功同步至第二云平台。
在一些实施例中,备用队列同步模块,用于:按照预先配置的时间间隔,从备用队列中获取待同步对象的对象标识,继续执行从第一云平台中读取对象标识对应的待同步对象的步骤,直至待同步对象成功同步至第二云平台。
在一些实施例中,上述装置还包括:对象状态数据获取模块,用于获取第一云平台和第二云平台的对象状态数据;其中,对象状态数据包括平台内存储的对象的对象标识;状态监控日志输出模块,用于根据对象状态数据,输出状态监控日志;状态监控日志包括:第一云平台的对象标识总数、第二云平台的对象标识总数、和仅存储在第一云平台或第二云平台的对象的对象标识。
在一些实施例中,第一云平台包括私有云平台,第二云平台包括公有云平台;或者,第一云平台包括公有云平台,第二云平台包括私有云平台。
对应于上述方法实施例,本发明实施例提供了另一种数据同步装置,该装置设置于终端设备,终端设备分别与服务器、第一云平台和第二云平台通信连接;如图8所示的另一种数据同步装置的结构示意图,该装置包括:
待同步对象确定模块81,用于确定待同步对象;
对象上传模块82,用于将待同步对象上传至第一云平台;
对象标识上传模块83,用于将待同步对象的对象标识上传至服务器中预设的消息队列,以通过服务器从预设的消息队列中获取待同步对象的对象标识,从第一云平台中读取对象标识对应的待同步对象,将读取到的待同步对象同步至第二云平台。
本发明实施例提供的另一种数据同步装置,终端设备的服务器将用户指定的待同步对象发送至第一云平台后,将待同步对象对应的对象标识上传至服务器的消息队列,服务器根据消息队列进行数据同步。该方式中,客户端只需上传一份数据即可实现混合云之间的数据同步,可以有效提高数据传输速度;忽略了第一云平台和的第二云平台的兼容性,可以增强数据传输的灵活性;通过消息队列同步数据,可以应用于各类混合云中,因而具有通用性。
在一些实施例中,对象标识上传模块,用于:判断待同步对象是否成功上传至第一云平台;如果是,将待同步对象的对象标识上传至服务器中预设的消息队列。
在一些实施例中,上述装置还包括:第二判断模块,用于判断待同步对象的对象标识是否成功上传至消息队列;待同步对象删除模块,用于如果否,从第一云平台中删除待同步对象。
本发明实施例提供的数据同步装置,与上述实施例提供的数据同步装方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
本发明实施例还提供了一种服务器和一种终端设备,用于运行上述数据同步方法;参见图9所示的一种服务器或一种终端设备的结构示意图,包括存储器100和处理器101,其中,存储器100用于存储一条或多条计算机指令,一条或多条计算机指令被处理器101执行,以实现上述数据同步方法。
进一步地,图9所示的服务器还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。
其中,存储器100可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该***网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,计算机可执行指令促使处理器实现上述数据同步方法,具体实现可参见方法实施例,在此不再赘述。
本发明实施例所提供的数据同步方法、装置和终端设备的计算机程序产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和/或终端设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (13)
1.一种数据同步方法,其特征在于,所述方法应用于服务器,所述方法包括:
从预设的消息队列中获取待同步对象的对象标识;其中,所述待同步对象的对象标识由客户端预先上传至所述消息队列;
从第一云平台中读取所述对象标识对应的待同步对象;
将读取到的所述待同步对象同步至第二云平台。
2.根据权利要求1所述的方法,其特征在于,将读取到的所述待同步对象同步至所述第二云平台的步骤之后,所述方法还包括:
判断所述待同步对象是否成功同步至所述第二云平台;
如果否,将所述待同步对象的对象标识发送至预设的备用队列;
通过所述备用队列将所述待同步对象成功同步至所述第二云平台。
3.根据权利要求2所述的方法,其特征在于,通过所述备用队列将所述待同步对象成功同步至所述第二云平台的步骤,包括:
按照预先配置的时间间隔,从所述备用队列中获取所述待同步对象的对象标识,继续执行从所述第一云平台中读取所述对象标识对应的待同步对象的步骤,直至所述待同步对象成功同步至所述第二云平台。
4.根据权利要求1所述的方法,其特征在于,将读取到的所述待同步对象同步至所述第二云平台的步骤之后,所述方法还包括:
获取所述第一云平台和所述第二云平台的对象状态数据;其中,所述对象状态数据包括平台内存储的对象的对象标识;
根据所述对象状态数据,输出状态监控日志;所述状态监控日志包括:所述第一云平台的对象标识总数、所述第二云平台的对象标识总数、和仅存储在所述第一云平台或所述第二云平台的对象的对象标识。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一云平台包括私有云平台,所述第二云平台包括公有云平台;
或者,所述第一云平台包括公有云平台,所述第二云平台包括私有云平台。
6.一种数据同步方法,其特征在于,所述方法应用于终端设备,所述方法包括:
确定待同步对象;
将所述待同步对象上传至第一云平台;
将所述待同步对象的对象标识上传至服务器中预设的消息队列,以通过所述服务器从预设的消息队列中获取待同步对象的对象标识,从所述第一云平台中读取所述对象标识对应的待同步对象,将读取到的所述待同步对象同步至第二云平台。
7.根据权利要求6所述的方法,其特征在于,将所述待同步对象的对象标识上传至所述服务器中预设的消息队列的步骤,包括:
判断所述待同步对象是否成功上传至所述第一云平台;
如果是,将所述待同步对象的对象标识上传至所述服务器中预设的消息队列。
8.根据权利要求6或7所述的方法,其特征在于,将所述待同步对象的对象标识上传至所述服务器中预设的消息队列的步骤之后,所述方法还包括:
判断所述待同步对象的对象标识是否成功上传至所述消息队列;
如果否,从所述第一云平台中删除所述待同步对象。
9.一种数据同步装置,其特征在于,所述装置设置于服务器,所述装置包括:
对象标识获取模块,用于从预设的消息队列中获取待同步对象的对象标识;其中,所述待同步对象的对象标识由客户端预先上传至所述消息队列;
对象读取模块,用于从第一云平台中读取所述对象标识对应的待同步对象;
对象同步模块,用于将读取到的所述待同步对象同步至第二云平台。
10.一种数据同步装置,其特征在于,所述装置设置于终端设备,所述装置包括:
待同步对象确定模块,用于确定待同步对象;
对象上传模块,用于将所述待同步对象上传至第一云平台;
对象标识上传模块,用于将所述待同步对象的对象标识上传至服务器中预设的消息队列,以通过所述服务器从预设的消息队列中获取待同步对象的对象标识,从所述第一云平台中读取所述对象标识对应的待同步对象,将读取到的所述待同步对象同步至第二云平台。
11.一种服务器,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求1至5任一项所述的数据同步方法的步骤。
12.一种终端设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的计算机可执行指令,所述处理器执行所述计算机可执行指令以实现权利要求6至8任一项所述的数据同步方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在被处理器调用和执行时,所述计算机可执行指令促使处理器实现权利要求1至8任一项所述的数据同步方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910939061.7A CN110602250A (zh) | 2019-09-29 | 2019-09-29 | 数据同步方法、装置、服务器和终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910939061.7A CN110602250A (zh) | 2019-09-29 | 2019-09-29 | 数据同步方法、装置、服务器和终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110602250A true CN110602250A (zh) | 2019-12-20 |
Family
ID=68865073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910939061.7A Pending CN110602250A (zh) | 2019-09-29 | 2019-09-29 | 数据同步方法、装置、服务器和终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110602250A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112905320A (zh) * | 2021-02-05 | 2021-06-04 | 北京邮电大学 | 一种物联网任务的执行***、方法及装置 |
CN113133107A (zh) * | 2019-12-30 | 2021-07-16 | 北京百度网讯科技有限公司 | 用于同步信息的方法及装置 |
CN113242313A (zh) * | 2021-05-28 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 数据同步方法、***、装置、服务器及存储介质 |
CN113407500A (zh) * | 2021-06-21 | 2021-09-17 | 北京金山云网络技术有限公司 | 一种数据同步方法、装置、云平台、***及存储介质 |
CN113746931A (zh) * | 2021-09-10 | 2021-12-03 | 联想(北京)有限公司 | 数据同步方法及装置 |
CN113973075A (zh) * | 2020-07-22 | 2022-01-25 | 北京金山云网络技术有限公司 | 一种数据处理方法及装置 |
CN114567644A (zh) * | 2022-02-21 | 2022-05-31 | 深圳希施玛数据科技有限公司 | 一种数据同步的方法、装置及电子设备 |
CN115640100A (zh) * | 2022-11-08 | 2023-01-24 | 安超云软件有限公司 | 一种虚拟机信息同步方法及计算机可读介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095957A (zh) * | 2016-06-16 | 2016-11-09 | 北京航空航天大学 | 分布式文件***的跨域多副本文件同步方法及装置 |
CN107277152A (zh) * | 2017-06-29 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种公有云数据安全备份*** |
CN109885617A (zh) * | 2019-01-29 | 2019-06-14 | 中国工商银行股份有限公司 | 分布式异构数据库***的数据同步方法及装置 |
-
2019
- 2019-09-29 CN CN201910939061.7A patent/CN110602250A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106095957A (zh) * | 2016-06-16 | 2016-11-09 | 北京航空航天大学 | 分布式文件***的跨域多副本文件同步方法及装置 |
CN107277152A (zh) * | 2017-06-29 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种公有云数据安全备份*** |
CN109885617A (zh) * | 2019-01-29 | 2019-06-14 | 中国工商银行股份有限公司 | 分布式异构数据库***的数据同步方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113133107A (zh) * | 2019-12-30 | 2021-07-16 | 北京百度网讯科技有限公司 | 用于同步信息的方法及装置 |
CN113133107B (zh) * | 2019-12-30 | 2022-12-23 | 北京百度网讯科技有限公司 | 用于同步信息的方法及装置 |
CN113973075A (zh) * | 2020-07-22 | 2022-01-25 | 北京金山云网络技术有限公司 | 一种数据处理方法及装置 |
CN112905320A (zh) * | 2021-02-05 | 2021-06-04 | 北京邮电大学 | 一种物联网任务的执行***、方法及装置 |
CN113242313A (zh) * | 2021-05-28 | 2021-08-10 | 北京达佳互联信息技术有限公司 | 数据同步方法、***、装置、服务器及存储介质 |
CN113407500A (zh) * | 2021-06-21 | 2021-09-17 | 北京金山云网络技术有限公司 | 一种数据同步方法、装置、云平台、***及存储介质 |
CN113746931A (zh) * | 2021-09-10 | 2021-12-03 | 联想(北京)有限公司 | 数据同步方法及装置 |
CN113746931B (zh) * | 2021-09-10 | 2022-11-22 | 联想(北京)有限公司 | 数据同步方法及装置 |
CN114567644A (zh) * | 2022-02-21 | 2022-05-31 | 深圳希施玛数据科技有限公司 | 一种数据同步的方法、装置及电子设备 |
CN114567644B (zh) * | 2022-02-21 | 2023-10-20 | 深圳希施玛数据科技有限公司 | 一种数据同步的方法、装置及电子设备 |
CN115640100A (zh) * | 2022-11-08 | 2023-01-24 | 安超云软件有限公司 | 一种虚拟机信息同步方法及计算机可读介质 |
CN115640100B (zh) * | 2022-11-08 | 2023-05-23 | 安超云软件有限公司 | 一种虚拟机信息同步方法及计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110602250A (zh) | 数据同步方法、装置、服务器和终端设备 | |
US10805363B2 (en) | Method, device and system for pushing file | |
US11940965B2 (en) | Data migration method and apparatus | |
CN109788068B (zh) | 心跳状态信息上报方法、装置和设备及计算机存储介质 | |
US10764939B2 (en) | Network function processing method and related device | |
CN108347476B (zh) | 跨机房数据同步方法、装置以及服务器 | |
CN109561054B (zh) | 一种数据传输方法、控制器及接入设备 | |
CN110650098B (zh) | 物联网数据的变频采集方法及装置 | |
CN112965817B (zh) | 资源管理方法、装置和电子设备 | |
CN106817387B (zh) | 一种数据同步方法、装置和*** | |
CN112612769A (zh) | 文件处理方法、装置及存储介质 | |
CN111291008A (zh) | 数据处理方法、装置、***、电子设备及计算机存储介质 | |
CN109788251B (zh) | 视频处理方法、装置及存储介质 | |
CN108038127B (zh) | 一种数据同步的方法、装置、终端设备及存储介质 | |
CN111988391A (zh) | 一种消息发送方法及装置 | |
EP3349416A1 (en) | Relationship chain processing method and system, and storage medium | |
CN111092956A (zh) | 资源同步方法、装置、存储介质及设备 | |
CN111935029B (zh) | 网关负载均衡方法和装置、存储介质及电子设备 | |
CN114240651A (zh) | 跨链交易发送方法、装置、设备和存储介质 | |
CN114625578A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN109962962B (zh) | 一种套接字socket连接的方法及设备 | |
CN112383617A (zh) | 进行长连接的方法、装置、终端设备以及介质 | |
CN111464395A (zh) | 一种创建区块链的方法、装置及可读存储介质 | |
CN112055058A (zh) | 数据的存储方法、装置及计算机可读存储介质 | |
CN111596933A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191220 |