CN109033391A - 一种多数据中心之间数据同步方法、***及计算机可读存储介质 - Google Patents
一种多数据中心之间数据同步方法、***及计算机可读存储介质 Download PDFInfo
- Publication number
- CN109033391A CN109033391A CN201810856478.2A CN201810856478A CN109033391A CN 109033391 A CN109033391 A CN 109033391A CN 201810856478 A CN201810856478 A CN 201810856478A CN 109033391 A CN109033391 A CN 109033391A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronized
- sequence number
- transmit queue
- data center
- 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
Links
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请披露了一种用于数据中心间的数据同步的方法、***及计算机可读存储介质,所述方法包括第一数据中心获取至少一个待同步数据;其中,每个待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序;所述第一数据中心将所述待同步数据写入其至少一个存储设备;所述第一数据中心基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心上的接收状态将待同步数据发送到第二数据中心进行同步。
Description
技术领域
本申请涉及数据存储领域,具体涉及一种数据在多数据中心之间在线即时同步的***和方法。
背景技术
随着互联网技术的发展,O2O服务,如在线出租车服务和递送服务,在人们的日常生活中扮演着越来越重要的作角色。而在人们使用O2O服务时,会产生大量的数据(例如,订单数据),如何进行有效存储和利用是当前的热点问题。
O2O服务平台通常会将这些数据存储于数据库服务中,并且为了保证数据库服务的高可用性,通常使用“异地多活”技术,构建跨机房的数据库服务,即数据存储在多个不同网络环境的机房。当一个机房的数据因任何原因不可用时,可迅速将访问切换到另一个机房的数据库上,降低服务中断的时间。“异地多活”技术中关键的技术点之一在于如何进行数据在线实时同步。现有的数据在线实时同步方案通常依赖于一个第三方中间设备,如:MQ类的消息中间件。用户写入数据到数据库之后,数据库服务依赖MQ类的消息中间件,在后台实现多机房同步。但是这种数据同步方法,其同步数据的可靠性严重依赖MQ类消息中间件,如果在该MQ类消息中间件数据丢失,将无法保证数据的可靠同步。因此,如何能保证数据同步的可靠性,不依赖第三方中间件的数据同步成为多数据库之间数据同步领域需要解决的一个问题。
发明内容
本申请的一个方面涉及一种用于多数据中心之间数据同步的方法。所述方法包括第一数据中心获取至少一个待同步数据;其中,每个待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序;所述第一数据中心将所述待同步数据写入其至少一个存储设备;所述第一数据中心基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心处的接收状态将待同步数据发送到第二数据中心进行同步。
在一些实施例中,所述第一数据中心基于所述数据序号反映的所述时间顺序将待同步数据发送到第二数据中心进行同步进一步包括:所述第一数据中心按照所述数据序号反映的所述时间顺序将待同步数据依次序发送到第二数据中心进行同步。
在一些实施例中,所述第一数据中心维护至少一个发送队列;所述发送队列至少用于记录至少一个已发送的待同步数据的数据序号;
所述第一数据中心基于所述发送队列将待同步数据发送到第二数据中心进行同步。
在一些实施例中,所述第一数据中心在将某待同步数据发送给第二数据中心后,将该待同步数据对应的数据序号记录到发送队列中。
在一些实施例中,所述第一数据中心维护至少一个发送队列进一步包括以下步骤:第一数据中心判断是否接收到第二数据中心反馈的与所述发送队列中某数据序号对应的待同步数据的到达信息,若是,将该数据序号从发送队列中删除;若否,保留所述发送队列中该数据序号,以及保留所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号。
在一些实施例中,所述第一数据中心基于所述发送队列将待同步数据发送到第二数据中心进行同步还包括:第一数据中心判断某数据序号在所述发送队列中的保留时间是否超时,若是则重新向第二数据中心发送该数据序号对应的待同步数据以及所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号对应的待同步数据。
在一些实施例中,所述发送队列存储于第一数据中心的至少一个存储设备中。
本申请的又一方面涉及一种多数据中心之间数据同步的***。所述***包括:获取模块,写入模块及发送模块,其中:所述获取模块用于获取至少一个待同步数据;其中,每个待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序;所述写入模块用于将所述待同步数据写入第一数据中心的至少一个存储设备;所述发送模块用于基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心处的接收状态将待同步数据发送到第二数据中心进行同步。
本申请的又一个方面涉及一种计算机可读存储介质,所述存储介质用于存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机运行所述的用于多数据中心之间数据同步方法。
本申请的又一个方面涉及一种用于多数据中心之间的数据同步装置,所述装置包括至少一个处理器以及至少一个存储介质;所述至少一个存储介质用于存储计算机指令;所述至少一个处理器用于执行所述计算机指令以实现所述的用于多服务器之间数据同步的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构和操作。
图1为根据本申请的一些实施例所示的一个示例性汇合位置推荐***的示意图;
图2为根据本申请的一些实施例所示的一个示例性的可以实施处理引擎的计算装置的示例性硬件和/或软件组件的示意图;
图3为根据本申请的一些实施例所示的一个示例性移动设备的硬件和/或软件组件的示意图;
图4为根据本申请的一些实施例所示的一个示例性处理引擎的框图;
图5为示出了根据本申请的一些实施例所示的一个示例性处理模块的框图;
图6为根据本申请的一些实施例所示的在服务之间进行数据同步的一个示例性流程图;以及
图7为根据本申请的一些实施例所示的保证数据按序到达的一个示例性流程图。
具体实施方式
在下面的详细描述中,为了提供对相关申请的透彻理解,通过实施例阐述了实施例的具体细节。然而,对于本领域技术人员来说显而易见的是,本申请可以在没有这些具体细节的情况下被实现。在其他情况下,为了避免不必要地模糊本申请的各方面,已经以较高级别(没有细节)描述了众所周知的方法、程序、***、部件和/或电路。对本申请的实施例的各种修改对于本领域技术人员将是显而易见的,并且在不脱离本申请的精神和范围的情况下,本申请定义的一般原理可以应用于其他实施例和应用场景中。因此,本申请不限于所示的实施例,而是符合与权利要求一致的最广范围。
本申请使用的术语仅用于描述特定示例性实施例的目的,而不是限制性的。如本申请所使用的,除非上下文明确提示例外情形,单数形态的“一”,“一个”和“该”也可以包括复数。应当进一步理解的是,在本说明书中使用的术语“包括”和/或“包含”时,指存在所述特征、整形常量、步骤、操作、元素和/或组件,但不排除存在或添加一个或多个其他特征、整形常量、步骤、操作、元件、组件和/或其组合。
应当理解的是,本申请使用的术语“***”、“引擎”、“单元”、“模块”和/或“区块”是一种以升序的形式来区分不同组件、元件、部件、部件或组件的级别方法。然而,如果其他表达方式达到相同的目的,则这些术语可能被其他表达方式所取代。
通常,如本申请所使用的“模块”、“单元”或“区块”是指以硬件或固件或软件指令的集合体现的逻辑。本申请描述的模块、单元或区块可以在软件和/或硬件上被执行,并且可以被存储在任何类型的非暂时性计算机可读介质或其他存储设备中。在一些实施例中,软件模块、单元、区块可以被编译并连接到可执行程序中。应当理解的是,软件模块可以从其他模块、单元、区块或其自身调用和/或可以响应于检测到的事件或中断而被调用。配置用于在计算设备上执行的软件模块/单元/区块(例如,如图1所示的处理引擎112)可以被提供在计算机可读介质上,诸如光盘、数字视频盘、闪存驱动器、磁盘或任何其他有形介质或作为数字下载(并且可以原始地以压缩或可安装的格式存储,在执行之前需要安装、解压缩或解密)。软件代码可以部分或全部存储在执行计算设备的存储设备上供计算设备执行。软件指令可以被嵌入到固件当中,例如EPROM。应当理解的是,硬件模块、单元或区块可以包括在连接的逻辑组件中,例如门和触发器和/或可以包括在诸如可编程门阵列或处理器之类的可编程单元中。本申请描述的模块、单元、区块或计算设备功能可以被实现为软件模块/单元/区块,但是可以用硬件或固件来表示。通常,这里描述的模块、单元、区块是指可以与其他模块、单元、区块组合或者分成子模块、子单元、子区块的逻辑模块、单元、区块,尽管它们的物理组织或存储。所述描述可以适用于***、引擎或其一部分。
应当理解的是,当单元、引擎、模块或区块被称为“在…上”、“连接到”或“耦合到”另一单元、引擎、模块或区块时,其可以直接在另一单元、引擎、模块或区块通信、或者可以存在单元、引擎、模块或区块,除非上下文明确提示例外情形。如本申请所使用的,术语“和/或”包括一个或多个相关所列项目的任何一种和所有的组合。
参照附图并考虑以下描述,本申请的这些和其他特征以及相关的结构元件以及制造的部件和经济的结合的操作和功能的方法可以变得更加明显,且都构成本申请的一部分。然而,应当明确地理解,附图仅仅是为了说明和描述的目的,并不意图限制本申请的范围。应当理解附图不是按比例的。
图1为根据本申请的一些实施例所示的一个示例性O2O服务***100的示意图。如图所示,O2O服务***100可以是一个在线运输服务平台,其可用于如出租车呼叫服务、代驾服务、快递服务、汽车共乘服务、巴士服务、驾驶员雇用、接送服务等与交通运输相关的服务。O2O服务***100还可以是一个提供网络购物、网络服务,如家政、电器维修,网络交友等服务的在线服务平台。O2O服务***100可以是一个在线平台,包括服务器110、网络120、一个或多个请求者终端130、一个或多个提供者终端140及数据库150。处理器110可以包括一个处理引擎112。
在一些实施例中,服务器110可以是单个服务器或一个服务器组。服务器组可以是集中式的或分散式的(例如,服务器110可为分散式***)。在一些实施例中,服务器110是一个分散式服务器***,包含多个数据中心。所述数据中心可以是同城的或异地的。多个所述数据中心中的数据可以互相之间进行实时同步。在一些实施例中,服务器110可以是本地的或远端的。例如,服务器110可经由网络120访问请求者终端130、提供者终端140及/或数据库150中储存的数据和/或信息。再例如,服务器110可以直接连接至请求者终端130、提供者终端140及/或数据库150以访问其所储存的数据和/或信息。在一些实施例中,服务器110可以在云平台中实施。仅仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分散式云、跨云、多重云等等或其任意组合。在一些实施例中,服务器110可以实施于本申请中图2所示的具有一个或多个组件之计算装置200。
在一些实施例中,服务器110可以包括处理引擎112。处理引擎112可以处理与服务请求相关的数据和/或信息以执行本申请描述的一个或多个功能。例如,处理引擎112可以基于获取自请求者终端130之服务请求,为用户服务提供者(例如,运输服务提供者、家政服务提供者等)。在一些实施例中,处理引擎112可以包括一个或多个处理引擎(例如,单核处理引擎或多核处理器)。仅仅作为示例,处理引擎112可以包括中央处理器(CPU)、专用集成电路(ASIC)、特定应用指令集处理器(ASIP)、图形处理器(GPU)、物理处理器(PPU)、数位讯号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑装置(PLD)、控制器、微控制器、精简指令集计算机(RISC)、微处理器等等或其任意组合。
网络120可以促进数据和/或信息的交换。在一些实施例中,O2O服务***100中的一个或多个组件(例如,服务器110、请求者终端130、提供者终端140及数据库150)可以经由网络120发送数据和/或信息至O2O服务***100中的其他任意组件。例如,服务器110可以经由网络120从请求者终端130获得/获取服务请求。在一些实施例中,网络120可以是任何类型的有线或无线网络或其组合。仅仅作为示例,网络120可以包括电缆网络、缆线网络、光纤网络、电信网络、内联网、互联网、局域网(LAN)、广域网(WAN)、无线局域网(WLAN)、城际网(MAN)、公用电话交换网(PSTN)、蓝牙网络,ZigBee网路、近场通讯网(NFC)等等或其任意组合。在一些实施例中,网络120可以包括一个或多个网路接入点。例如,网络120可以包括有线或无线网络接入点,如基站及/或网络交换点120-1、120-2……,经由网络接入点,O2O服务***100的一个或多个组件可以连接至网络120以进行数据及/或信息的交换。
在一些实施例中,请求者可以是请求者终端130的使用者。在一些实施例中,请求者终端130的使用者可以是除请求者之外的某个人。例如,请求者终端130的使用者A可使用请求者终端130为使用者B发送服务请求,或从服务器110接收服务和/或信息或指令。在一些实施例中,提供者可以为提供者终端140的使用者。在一些实施例中,提供者终端140的使用者可以是除提供者之外的某个人。例如,提供者终端140的使用者C可使用提供者终端140为使用者D接收服务请求,也可以从服务器110处接收信息或指令。在一些实施例中,“请求者”及“请求方终端”可以交换使用,“提供者”及“提供者终端”也可以交换使用。
在一些实施例中,请求者终端130可以包括移动装置130-1、平板电脑130-2、手提电脑电脑130-3、机动车内建装置130-4等等或其任意组合。在一些实施例中,移动装置130-1可包括智能家居设备,可穿戴设备、智能移动设备、虚拟现实设备、增强现实设备等等或其任意组合。在一些实施例中,智能家居设备可以包括智能照明设备、智能电器控制设备、智能监测设备、智能电视、智能摄像机、对讲机等等或其任意组合。在一些实施例中,可穿戴设备可以包括智能手环、智能鞋袜、智能眼镜、智能头盔、智能手表、智能服装、智能背包、智能附件等等或其任意组合。在一些实施例中,智能移动设备可以包括智能电话、个人数位助理(PDA)、游戏设备、导航设备、销售点(POS)设备等等或其任意组合。在一些实施例中,虚拟现实设备及/或增强现实设备可以包括虚拟现实头盔、虚拟现实眼镜、虚拟现实眼罩、增强现实头盔、增强现实眼镜、增强现实眼罩等等或其任意组合。例如,虚拟现实设备及/或增强现实设备可以包括Google Glass、Oculus Rift、HoloLens、Gear VR等。在一些实施例中,机动车内建设备130-4可以包括机载电脑、机载电视等。在一些实施例中,请求者终端130可以是具有用于确定请求者及/或请求者终端130位置的定位技术的设备。
在一些实施例中,提供者终端140可与请求者终端130类似或相同。在一些实施例中,提供者终端140可以是具有用于确定提供者及/或提供者终端140位置的定位技术的设备。在一些实施例中,请求者终端130及/或提供者终端140可以与其他定位装置通讯以确定请求者、请求者终端130、提供者及/或提供者终端140的位置。在一些实施例中,请求者终端130和/或提供者终端140可以将定位信息发送至服务器110。
数据库150可以存储数据和/或指令。在一些实施例中,数据库150可以是通过“异地多活”的构架形式进行构建的。例如:数据库150可以包含多个数据中心。所述数据中心是一种全球协作的特定设备网络,其可以用来在网络基础设施上传递、加速、展示、计算和存储数据信息。每个数据中心在地理上可以是异地的。每个数据中心都是活跃的,可以承担实时流量(例如:数据访问,如用户的历史订单数据)。无论数据库150中的那个数据中心出现问题,其他数据中心可以直接接管其工作。
在一些实施例中,数据库150可以储存从请求者终端130和/或提供者终端140获取的数据。在一些实施例中,数据库150可以储存服务器110可执行或使用以执行本申请描述的示例性方法的数据和/或指令。在一些实施例中,数据库150可以包括大容量储存器、移动储存器、挥发性读写记忆体、只读存储器(ROM)等等或其任意组合。示例性的大容量储存器可以包括磁盘、光盘、固态硬盘等。示例性移动储存器可以包括闪存、软盘、光盘、记忆卡、压缩盘、磁带等。示例性挥发性读写记忆体可以包括随机存储器(RAM)。示例性RAM可包括动态RAM(DRAM)、双倍速率同步动态RAM(DDRSDRAM)、静态RAM(SRAM)、闸流体RAM(T-RAM)以及零电容RAM(Z-RAM)等。示例性ROM可以包括屏蔽式ROM(MROM)、可编程ROM(PROM)、可清除可变成ROM(PEROM)、电可清除可变成ROM(EEPROM)、光盘ROM(CD-ROM)以及数位通用磁盘ROM等。在一些实施例中,数据库150可以在云平台上实施。仅仅作为示例,云平台可以包括私有云、公共云、混合云、社区云、分散式云、跨云、多重云等等或其任意组合。
在一些实施例中,数据库150可以通过网络120与O2O服务***100中的一个或多个组件(例如,服务器110、请求者终端130、提供者终端140等)进行通讯。O2O服务***100中的一个或多个组件可经由网络120存取储存于数据库150中的数据或指令。在一些实施例中,数据库150可以与O2O服务***100的一个或多个组件(例如,服务器110、请求者终端130、提供者终端140等)直接连接或通讯。在一些实施例中,数据库150可以是服务器110的一部分。
在一些实施例中,O2O服务***100的一个或多个组件(例如,服务器110、请求者终端130、提供者终端140等)可以具有访问数据库150的权限。在一些实施例中,当满足一个或多个条件时,O2O服务***100的一个或多个组件可读取及/或修改与请求者、提供者及/或公共相关的信息。例如,服务器110可以在服务后读取及/或修改一个或多个使用者的信息。再例如,当接收到来自请求者终端130的服务请求时,提供者终端140可以访问与请求者相关的信息,但提供者终端140不可以修改请求者的相关信息。
在一些实施例中,O2O服务***100中的一个或多个组件的信息交换可以经由请求服务达成。服务请求的对象可以是任何产品。在一些实施例中,产品可以是有形产品或无形产品。有形产品可以包括食物、药物、日用品、化学产品、电器用品、衣服、汽车、住宅、奢侈品等等或其任意组合。无形产品可包括服务产品、金融产品、知识产品、互联网产品等等或其任意组合。互联网产品可以包括个人主机产品、网页产品、移动互联网产品、商用主机产品、嵌入式产品等等或其任意组合。移动互联网产品可以是用于移动终端上的软件、程序或***等等或其任意组合。移动终端可包括平板电脑、手提电脑、移动电话、个人数位助理(PDA)、智能手表、销售点(POS)设备、机载电脑、机载电视、可穿戴设备等等或其任意组合。例如,产品可以是在电脑或移动电话上使用的任一软件及/或应用程序。软件和/或应用程序可与社交、购物、运输、娱乐、学习、投资等等或其任意组合相关。在一些实施例中,与运输相关的软件和/或应用程序可包括出行软件和/或应用程序、载具调度软件和/或应用程序、地图软件和/或应用程序等。在载具调度软件和/或应用程序中,载具可以包括马、马车、人力车(例如,手推车、脚踏车、三轮车等)、汽车(例如,计程车、巴士、私人汽车等)、列车、地铁、船只、航空器(例如,飞机、直升机、太空梭、火箭、热气球)等等或其任意组合。
以上描述仅出于说明性目的,并不限制本申请的保护范围。许多替代方案,修改和变体对于本领域技术人员是显而易见的。本文描述的示例性实施例的特征、结构、方法和其它特征可以以各种方式组合以获得附加的和/或替代性的示例性实施例。例如,存储器130可以是包括云计算平台的数据存储器,云计算平台可以是公共云、私有云、社区云、混合云等。然而,变体和修改不会脱离本申请的范围。
图2为根据本申请的一些实施例的一个示例性的可以实施处理引擎112的计算装置200的示例性硬件和/或软件组件的示意图。如图2所示,计算装置200可以包括处理器210、存储器220、输入/输出端(I/O)230以及通信端口240。
处理器210可以根据本文中描述的技术执行计算机指令(例如,程序代码)并且执行处理引擎112的功能。计算机指令可以包括例如例程、程序、物体、组件、数据结构、工序、模块和功能,其执行本文中描述的特定功能。例如,处理器210可以处理从服务器110、请求者终端130、提供者终端140、数据库150和/或O2O服务***100的任何其它组件中获取的数据。在一些实施例中,处理器210可以包括一个或多个硬件处理器,如微控制器、微处理器、精简指令计算机(RISC)、特殊应用集成电路(ASIC)、特殊应用指令集处理器(ASIP)、中央处理器(CPU)、图形处理器(GPU)、物理处理器(PPU)、微控制器单元、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、高级精简指令***计算机(ARM)、可编程逻辑装置(PLD)、能够执行一个或多个功能的任何电路或处理器等等,或其任意组合。
仅用于说明,只描述计算装置200中的一个处理器。然而,应该注意的是,本申请中的计算装置200也可以包括多个处理器,因此本申请中描述的由一个处理器执行的操作和/或方法步骤也可以共同或独立地由多个处理器执行。例如,如果在本申请中,计算装置200的处理器执行处理A和处理B,应理解处理A和处理B也可以由计算装置200中的两个或两个以上不同的处理器共同或独立地执行(例如,第一处理器执行处理A,第二处理器执行处理B;或第一处理器和第二处理器共同执行处理A和B)。
存储器220可以存储从服务器110、请求者终端130、提供者终端140、数据库150和/或O2O服务***100的任何其它组件获取的数据/信息。在一些实施例中,存储器220可以包括大容量储存器、移动储存器、挥发性读写记忆体、只读存储器(ROM)等等或其任意组合。示例性的大容量储存器可以包括磁盘、光盘、固态硬盘等。示例性移动储存器可以包括闪存、软盘、光盘、记忆卡、压缩盘、磁带等。示例性挥发性读写记忆体可以包括随机存储器(RAM)。示例性RAM可包括动态RAM(DRAM)、双倍速率同步动态RAM(DDR SDRAM)、静态RAM(SRAM)、闸流体RAM(T-RAM)以及零电容RAM(Z-RAM)等。示例性ROM可以包括屏蔽式ROM(MROM)、可编程ROM(PROM)、可清除可变成ROM(PEROM)、电可清除可变成ROM(EEPROM)、光盘ROM(CD-ROM)以及数位通用磁盘ROM等。在一些实施例中,存储器220可以存储一个或多个程序和/或指令以执行本申请中描述的示例性方法。例如,存储器220可以存储一个程序,该程序可使得处理引擎112确定请求者的位置信息。
I/O 230可以输入和/或输出信号、数据、信息等。在一些实施例中,I/O 230可以实现与处理引擎112的交互。在一些实施例中,I/O 230可以包括一个输入装置和一个输出装置。示例性输入装置可以包括键盘、鼠标、触摸屏、麦克风等等或其任意组合。示例性输出装置可以包括显示装置、扬声器、打印机、投影仪等等或其任意组合。示例性显示装置可以包括液晶显示器(LCD)、基于发光二极管(LED)的显示器、平板显示器、曲面屏幕、电视装置、阴极射线管(CRT)、触摸屏等等或其任意组合。
通信端口240可以连接至网络(例如,网络120)以促进数据通信。通信端口240可以建立处理引擎112与服务器110、请求者终端130、提供者终端140、存储器150和/或O2O服务***100中其他任意组件之间的连接。所述连接可以是有线连接、无线连接、能够实现数据传输和/或接收的任何其它通信连接和/或这些连接的任意组合。有线连接可以包括例如电缆、光缆、电话线等等或其任意组合。无线连接可以包括BluetoothTM连接、Wi-FiTM连接、WiMaxTM连接、WLAN连接、ZigBee连接、移动网络连接(例如,3G、4G、5G等)等等或其任意组合。在一些实施例中,通信端口240可以是(或包括)一个标准化通信端口,如RS232、RS485等。在一些实施例中,通信端口240可以是一个专门设计的通信端口。
图3为根据本申请的一些实施例所示的一个示例性移动设备300的示例性硬件和/或软件组件的示意图,移动设备300上可以实施请求者终端130和/或提供者终端140。如图3所示,移动设备300可以包括通信平台310、显示器320、图形处理单元(GPU)330、中央处理器(CPU)340、I/O350、存储器360以及存储器390。在一些实施例中,移动设备300还可以包括任何其它适合组件,包括但不限于***总线或控制器(未示出)。在一些实施例中,操作***370(例如,iOSTM、AndroidTM、Windows PhoneTM等)和一个或多个应用程序380可以从存储器390加载至存储器360,从而由CPU 340执行。应用程序380可以包括浏览器或任何其它适合移动应用,所述应用用于接收和呈现关于服务请求的信息或来自处理引擎112的其它信息。可以通过I/O 350实现信息流与用户的交互,并将所述用户交互通过网络120提供给处理引擎112和/或O2O服务***100的其它组件。
为了实施本申请中描述的多个模块、单元及其功能,计算机硬件平台可以用作本申请中描述的一个或多个元件的硬件平台。具有用户界面元件的计算机可以用于实施个人计算机(PC)或任何其它类型的工作站或外部装置。如果适当地编程,计算机还可以用作服务器。
图4为根据本申请的一些实施例所示的示例性处理引擎112的示意图。处理引擎112可以包括采集模块402、控制模块404、处理模块406以及存储模块408。处理引擎112的至少一部分可以在如图2所示的计算装置或如图3所示的移动设备上实施。
采集模块402可以获取服务请求相关数据。在一些实施例中,采集模块402可以从服务器110、请求者终端130、提供者终端140、数据库150和/或外部数据源(未示出)获取服务请求相关数据。在一些实施例中,服务请求相关数据可以包括原始数据(例如,位置数据)、指令等等,或其组合。例如,可以基于请求者终端130所具有的定位技术(例如,GPS定位技术)获取代表请求者位置的原始坐标数据。指令可以由处理引擎112的处理器执行以实施本申请中描述的示例性方法。在一些实施例中,已获取的数据可以传输至存储模块408进行存储。
控制模块404可以控制采集模块402、存储模块408、处理模块406(例如,通过生成一个或多个控制参数)、服务器110等等或其任意组合。例如,控制模块404可以控制采集模块402获取服务请求相关数据,获取数据的时机等。再例如,控制模块404可以控制处理模块406处理已由采集模块402获取的服务请求相关数据。在一些实施例中,控制模块404可以接收来自使用者的实时指令或预定指令以控制采集模块402和/或处理模块406的一项或多项操作。例如,控制模块404可以调节采集模块402和/或处理模块406以根据实时指令和/或预定指令生成一个或多个服务请求相关数据。在一些实施例中,控制模块404可以与处理引擎112的一个或多个其它模块通信以进行信息和/或数据交换。
存储模块408可以存储服务请求相关数据、控制参数、处理过的服务请求相关数据等等或其任意组合。在一些实施例中,存储模块408可以存储可以由处理引擎112的处理器执行的一个或多个程序和/或指令,从而实施本申请中描述的示例性方法。例如,存储模块408可以存储可以由处理引擎112的处理器执行的程序和/或指令,从而获取服务请求相关数据、基于服务请求相关数据可以确定服务提供者(例如:候选车辆)。
处理模块406可以处理由处理引擎112的多个模块提供的信息。处理模块406可以处理已由采集模块402获取的服务请求相关数据、从存储模块408和/或存储器130得到的服务请求相关数据等。在一些实施例中,处理模块406可以处理获取的服务相关数据,将所述服务相关数据进行同步。例如:在乘客完成打车订单时,O2O服务***100可以获取已经完成的乘客订单相关数据,并进行更新。在对所述乘客订单相关数据更新后,处理模块406可以将更新后的数据,通过滑动窗口机制,在数据库150中的各个数据中心之间进行同步。
在一些实施例中,图4所示的一个或多个模块可以在图1所示的O2O服务***100的至少一部分中实施。例如,采集模块402、控制模块404、存储模块408和/或处理模块406可以集成到请求者终端130和/或提供者终端140中。在一些实施例中,通过请求者终端130,服务请求者可以设定服务请求的相关参数、服务请求的起始时间等。在一些实施例中,O2O服务***110可以根据服务请求者设定的服务请求的相关参数、服务请求的起始时间信息,为所述服务请求者自动分配满足条件的服务提供者。在一些实施例中,通过提供者终端140,服务提供者可以根据获取的服务请求者设定的参数,选择是否为所述服务请求者提供服务。
图5为根据本申请的一些实施例所示的一个示例性处理模块406的框图。处理模块406可以包括一个获取模块502、一个写入模块504、一个发送模块506以及一个发送队列维护模块508。处理模块406可以在多个组件(例如,如图2所示的计算装置200的处理器210)上实施。例如,处理模块406的至少一部分可以在如图2所示的计算装置或如图3所示的移动设备上实施。
获取模块502可以获取获取至少一个待同步数据。每个所述待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序。在一些实施例中,也可以直接将第一数据中心获取所述待同步数据的时间信息作为所述数据序号。例如,待同步数据可以是D1、D2、D3和D4,对应的被所述第一数据中心获取的时间为T1、T2、T3和T4。处理模块406可以为每个待同步数据分配一个数据序号,如Seq1、Seq2、Seq3和Seq4。所述数据序号的大小可以反映的第一数据中心获取这些待同步数据的先后顺序。例如,数据序号可以随着第一数据中心获取这些待同步数据的时间单调递增、或单调递减。获取模块502也可以直接将待同步数据D1、D2、D3和D4被所述第一数据中心获取的时间T1、T2、T3和T4直接作为这些待同步数据的数据序号。
在一些实施例中,所述待同步数据可以是用户相关数据,例如,用户的注册信息。所述用户的注册信息可以包括用户姓名、性别、年龄、偏好等,或其任意组合。所述用户相关数据还包括用户的订单数据。所述订单数据包括订单的时间、地点、类型等。所述用户相关数据还包括基于用户的订单数据进行预测得到的其他数据,例如,用户使用某一类型服务(如,打车服务,外卖服务等)的概率。在一些实施例中,获取模块502可以通过网络120与请求者终端130和/或提供者终端140进行通讯,以获取所需的待同步数据。
写入模块504可以将所述待同步数据写入第一存储器的存储设备中。在一些实施例中,所述第一数据中心可以包含多个存储设备,写入模块504可以将获取的待同步数据写入所述第一数据中心中的任意一个或多个存储设备中。
发送模块506可以基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心上的接收状态将待同步数据发送到第二数据中心进行同步。
发送队列维护模块508可以维护至少一个发送队列。所述发送队列可以记录至少一个已发送的待同步数据的数据序号。发送模块506可以基于所述发送队列,将待同步数据发送到第二数据中心进行同步。在待同步数据发送给第二数据中心后,发送队列维护模块508还可以将该待同步数据对应的数据序号记录到发送队列中。
发送队列维护模块508还可以进一步地判断是否接收到第二数据中心反馈的与所述发送队列中所反映的时间顺序最早的数据序号对应的待同步数据的到达信息,若是,将该数据序号从发送队列中删除;若否,保留所述发送队列中该数据序号,以及保留所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号。
在一些实施例中,所述第一数据中心可以维护一个发送队列,并将所述数据序号按照所述时间顺序依次写入所述发送队列。进一步的,所述第一数据中心可以基于所述发送队列中的数据序号,向第二数据中心发送所述至少一个待同步数据,其中所述至少一个待同步数据的发送顺序与所述发送队列中的数据序号所反映的时间顺序一致。
应该注意的是,上述关于处理模块406的描述仅出于说明性目的,并不用于限制本申请的范围。对于本领域的技术人员来说,可以在本申请的指示下做出多种变体或修改。然而,这些变体和修改不会脱离本申请的范围。
图6为根据本申请的一些实施例所示的在服务之间进行数据同步的一个示例性流程图。在一些实施例中,流程600可以包括:第一数据中心获取至少一个待同步数据;其中,每个待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序602、将所述待同步数据写入其存储设备604以及基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心上的接收状态将待同步数据发送到第二数据中心进行同步606。在一些实施例中,图6所示的流程600的用于多数服务之间数据同步的一项或多项操作可以在图1所示的O2O服务***100中实施。例如,图6所示的流程600可以以指令的形式存储于存储器130,并且由处理引擎112(例如,图2所示的计算装置200的处理器210、图3所示的移动设备300的CPU 340)调用和/或执行。
在步骤602中,第一数据中心可以获取至少一个待同步数据。每个所述待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序。
步骤602可以由获取模块502执行。在一些实施例中,也可以直接将第一数据中心获取所述待同步数据的时间信息作为所述数据序号。例如,待同步数据可以是D1、D2、D3和D4,对应的被所述第一数据中心获取的时间为T1、T2、T3和T4。处理模块406可以为每个待同步数据分配一个数据序号,如Seq1、Seq2、Seq3和Seq4。所述数据序号的大小可以反映的第一数据中心获取这些待同步数据的时间先后顺序。处理模块406也可以直接将待同步数据D1、D2、D3和D4被所述第一数据中心获取的时间T1、T2、T3和T4直接作为这些待同步数据的数据序号。
在一些实施例中,所述待同步数据可以是用户相关数据,例如,用户的注册信息。所述用户的注册信息可以包括用户姓名、性别、年龄、偏好等,或其任意组合。所述用户相关数据还包括用户的订单数据。所述订单数据包括订单的时间、地点、类型等。所述用户相关数据还包括基于用户的订单数据进行预测得到的其他数据,例如,用户使用某一类型服务(如,打车服务,外卖服务等)的概率。在一些实施例中,获取模块502可以通过网络120与请求者终端130和/或提供者终端140进行通讯,以获取所需的待同步数据。
在步骤604中,所述第一数据中心可以将所述待同步数据写入其存储设备。步骤604可以由写入模块504执行。在一些实施例中,所述第一数据中心可以包含多个存储设备,写入模块504可以将获取的待同步数据写入所述第一数据中心中的任意一个或多个存储设备中。
在步骤606中,可以基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心上的接收状态将待同步数据发送到第二数据中心进行同步。步骤606可以由发送模块506执行。
在一些实施例中,所述第一数据中心可以维护一个滑动窗口,并将所述数据序号按照所述时间顺序依次写入滑动窗口。进一步的,所述第一数据中心可以基于所述滑动窗口中的数据序号,向第二数据中心发送所述至少一个待同步数据,其中所述至少一个待同步数据的发送顺序与所述滑动窗口中的数据序号相对应。
在一些实施例中,所述第一数据中心通过并行的方式,同时将多个待同步数据及其对应的反映所述时间顺序的数据序号直接发送给第二数据中心。第二数据中心可以根据所述数据序号,对所述多个待同步数据进行重新排序。
应该注意的是,以上描述仅出于说明性目的,并不用于限制本申请的保护范围。对于本领域的技术人员来说,可以在本申请的指示下做出多种变体或修改。然而,这些变体和修改不会脱离本申请的保护范围。例如,流程600可以在604前包括一项用于对待同步的数据进行检查以确定其准确性的步骤。
图7为根据本申请的一些实施例所示的保证数据按序到达的一个示例性流程图700。流程700可以由处理模块406执行。在一些实施例中,图6所示的步骤606可以根据流程700执行。在一些实施例中,图7所示的流程700的一项或多项操作可以在图1所示的O2O服务***100中实施。例如,图7所示的流程700可以以指令的形式存储于存储器130,并且由处理引擎112(例如,图2所示的计算装置200的处理器210、图3所示的移动设备300的CPU 340)调用和/或执行。
在步骤702中,可以维护至少一个发送队列,所述发送队列用于记录已发送的待同步数据的数据序号。步骤702可以由发送队列维护模块508执行。在一些实施例中,处理模块406可以在第一数据中心中维护根据滑动窗口机制一个发送队列。所述发送队列可以包含待同步数据的数据序号,其中,所述发送队列的发送顺序与所述待同步数据的数据序号相对应。例如,先发送的待同步数据的数据序号小于后发送的待同步数据的数据序号。在一些实施例中,所述发送队列中还可以包含待同步数据的发送时间信息。
在步骤704中,可以基于所述发送队列将待同步数据发送到第二数据中心进行同步。步骤704可以由发送模块506执行。在一些实施例中,将所述数据序号写入发送队列后,发送模块506可以基于所述发送队列中的数据序列的大小,将对应的所述待同步数据按序发送给所述第二数据中心。在一些实施例中,所述第一数据中心可以先按照待同步数据的获取时间顺序,即待同步数据的数据序号反映的时间顺序,将其依次发送给第二数据中心,然后将发送的待同步的数据对应的数据序号写入滑动窗口。在一些实施例中,发送队列中还可以存储有多个的数据序号对应多个待同步数据。
在一些实施例中,所述第二数据中心接收到所述第一数据中心发送的待同步数据时,会向第一数据中心反馈一个该待同步数据的到达信息。
在步骤706中,可以判断是否接收到第二数据中心反馈的与所述发送队列中某数据序号对应的待同步数据的到达信息,并基于判断结果进一步对发送队列中的数据序号做进一步处理。步骤706可以由发送队列维护模块508执行。在一些实施例中,在向第二数据发送待同步数据后,所述第一数据中心维护的发送队列中,已发送的待同步数据对应的数据序号依然存在。此时,发送队列维护模块508需要进一步判断所述第一数据中心是否接受到第二数据中心反馈的待同步数据的到达信息。若接收到所述达到信息,则执行步骤708,将所述的已被第二数据中心接收的待同步数据的数据序号从所述滑动窗口中删除。若未接收到所述达到信息,则执行步骤710,需要在所述滑动窗口中保留所述数据序号。
在步骤708中,若接收到第二数据中心反馈的发送队列中某数据序号对应的待同步数据的到达信息时,可以将该数据序号从发送队列中删除。在一些事实例中,若该数据序号反映的时间顺序在发送队列中是最早的,则删除该数据序号,如在发送队列中还存在其他数据序号,且反映的时间顺序早于该数据序号则继续在发送队列中保留该数据序号。
在所述与已发送并且已确认接收的待同步数据对应的数据序号被从发送序列中删除后,发送队列维护模块508可以进一步的将后续的还未发送的待同步数据的数据序号写入所述发送序列中进行相应待同步数据的发送。在一些实施例中,所述处理模块406可以确定所述还未发送的待同步数据的数据序号对应的待同步数据的大小,以及第二数据中心中能够接受的待同步数据的大小。若所述带发送的待同步数据的大小大于第二数据中心中能够接受的待同步数据,则暂时不把所述还未发送的待同步数据的数据序号写入发送队列,并等待第二数据中心释放空间,直到所述第二数据中心中的空间大于所述还未发送的待同步数据的大小。此时,将所述还未发送的待同步数据对应的数据序号写入发送队列,并进一步的向所述第二数据中心发送所述还未发送的待同步数据。
在步骤710中,可以保留所述发送队列中该数据序号,以及保留所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号。步骤710可以由发送队列维护模块508执行。当未接受到第二数据中心反馈的数据到达信息时,所述发送队列维护模块508将在发送队列中保留所述待同步数据对应的数据序号。
在一些实施例中,可能出现未接收某一发送队列中的某一个数据序号对应的待同步数据的到达信息,而接收到了反映的时间顺序在该数据序号之后的数据序号对应的待同步数据的到达信息。此时处理模块406在保留未收到第二数据中心反馈的数据到达的待同步数据的数据序号的同时,也不会删除该数据序号后面的反映的时间顺序在该数据序号之后的数据序号。例如,发送队列中包含Seq1、Seq2、Seq3和Seq4四个数据序号,对应的待同步数据为D1、D2、D3和D4。第一数据中心未接收到第二数据中心反馈的待同步数据D2的到达信息,但是接收到了待同步数据为D1、D3和D4的达到信息。此时,处理模块406将在所述滑动窗口中删除待同步数据D1对应的数据序号Seq1,并保留最早的未接收到反馈信息的待同步数据D2以其之后的所有数据序号Seq2、Seq3和Seq4。
在步骤712中,可以判断数据序号在所述发送队列中的保留时间是否超时,若是则重新向第二数据中心发送该数据序号对应的待同步数据以及所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号对应的待同步数据。步骤712可以由发送模块506执行。在一些实施例中,当待同步数据发送给第二数据中心后,进一步启动一个定时器,当超过设定时间未接收到第二数据中心反馈的数据到达信息时,所述处理模块406将再次发送队列中保留所述待同步数据对应的数据序号。在一些实施例中,当待同步数据发送给第二数据中心后,进一步地启动一个定时器,发送模块506将判断数据序号在所述发送队列中的保留的时间是否超过一个时间阈值。所述保留时间可以基于当前时间以及所述待同步数据的发送时间进行确定。在一些实施例中,当所述保留时间超过所述时间阈值时,发送模块506将向所述第二服务器重新发送所述数据序列对应的待同步数据以及所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号对应的待同步数据。在一些实施例中,当所述保留时间超过所述时间阈值时,发送模块506可以仅向所述第二数据中心重新发送所述数据序号以及对应的待同步数据。而已经发送并且接收到第二数据中心反馈的数据到达信息的待同步数据,不需要重新发送。此时,在第二数据中心中,所述待同步数据可以按照已经接收到的待同步数据的数据序号进行重新排列,以实现数据的按序接收。
在一些实施例中,当第一数据中心出现宕机、断电、连接中断等突发情况导致第一数据中心无法接收到第二服务的反馈信息时,可以一直在滑动窗口中保留未收到到达信息的待同步数据对应的数据序号。直到上述情况解除,第一数据中心恢复正常时,第一数据中心将重新发送反映的时间顺序最早且未接收到第二数据中心反馈的到达信息的数据序号对应的待同步数据以及所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号对应的待同步数据。
应该注意的是,关于流程700的描述出于说明性目的,并不用于限制本申请的保护范围。对于本领域的技术人员来说,可以在本申请的指示下做出多个变体和修改。然而,这些变体和修改不会脱离本申请的保护范围。例如,步骤702和704可以同时执行。再例如,步骤704可以在步骤702之后执行。
与现有技术相比,本申请以上各实施例可能带来的有益效果包括但不限于::
一、基于滑动窗口机制可以实现不同数据库之间直接的点对点数据传输,而不用借助第三方中间件,可以有效提高数据同步的效率。
二、采用滑动窗口机制可以保证数据的可靠、按序到达,并实现断点续传的功能。其中数据的可靠到达是指确保每个发送的待同步数据已被接收端数据中心接收。按序到达是指按照待同步数据的获取时间顺序向其他数据中心进行同步,防止同一变量被不同数值覆盖的顺序不同,导致不同数据中心上该同一变量的值不同。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
本领域技术人员能够理解,本申请所披露的内容可以出现多种变型和改进。例如,以上所描述的不同***组件都是通过硬件设备所实现的,但是也可能只通过软件的解决方案得以实现。例如:在现有的服务器上安装***。此外,这里所披露的位置信息的提供可能是通过一个固件、固件/软件的组合、固件/硬件的组合或硬件/固件/软件的组合得以实现。
以上内容描述了本申请和/或一些其他的示例。根据上述内容,本申请还可以作出不同的变形。本申请披露的主题能够以不同的形式和例子所实现,并且本申请可以被应用于大量的应用程序中。后文权利要求中所要求保护的所有应用、修饰以及改变都属于本申请的范围。
同时,本申请使用了特定词语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,除非权利要求中明确说明,本申请所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的***组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的***。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述属性、数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本申请一些实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本申请引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档、物件等,特将其全部内容并入本申请作为参考。与本申请内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本申请中的)也除外。需要说明的是,如果本申请附属材料中的描述、定义、和/或术语的使用与本申请所述内容有不一致或冲突的地方,以本申请的描述、定义和/或术语的使用为准。
最后,应当理解的是,本申请中所述实施例仅用以说明本申请实施例的原则。其他的变形也可能属于本申请的范围。因此,作为示例而非限制,本申请实施例的替代配置可视为与本申请的教导一致。相应地,本申请的实施例不限于本申请明确介绍和描述的实施例。
Claims (16)
1.一种用于多数据中心之间数据同步的方法,其特征在于,包括:
第一数据中心获取至少一个待同步数据;其中,每个待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序;
所述第一数据中心将所述待同步数据写入其至少一个存储设备;
所述第一数据中心基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心处的接收状态将待同步数据发送到第二数据中心进行同步。
2.根据权利要求1所述的方法,其特征在于,所述第一数据中心基于所述数据序号反映的所述时间顺序将待同步数据发送到第二数据中心进行同步进一步包括:所述第一数据中心按照所述数据序号反映的所述时间顺序将待同步数据依次序发送到第二数据中心进行同步。
3.根据权利要求1所述的方法,其特征在于,还包括,所述第一数据中心维护至少一个发送队列;所述发送队列至少用于记录至少一个已发送的待同步数据的数据序号;
所述第一数据中心基于所述发送队列将待同步数据发送到第二数据中心进行同步。
4.根据权利要求3所述的方法,其特征在于,所述第一数据中心维护至少一个发送队列进一步包括以下步骤:
第一数据中心在将某待同步数据发送给第二数据中心后,将该待同步数据对应的数据序号记录到发送队列中。
5.根据权利要求3所述的方法,其特征在于,所述第一数据中心维护至少一个发送队列进一步包括以下步骤:第一数据中心判断是否接收到第二数据中心反馈的与所述发送队列中所反映的时间顺序最早的数据序号对应的待同步数据的到达信息,
若是,将该数据序号从发送队列中删除;
若否,保留所述发送队列中该数据序号,以及保留所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号。
6.根据权利要求3所述的方法,其特征在于,所述第一数据中心基于所述发送队列将待同步数据发送到第二数据中心进行同步还包括:
第一数据中心判断某数据序号在所述发送队列中的保留时间是否超时,若是则重新向第二数据中心发送该数据序号对应的待同步数据以及所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号对应的待同步数据。
7.根据权利要求3所述的方法,其特征在于,所述发送队列存储于第一数据中心的至少一个存储设备中。
8.一种用于多数据中心之间数据同步的***,其特征在于,位于第一数据中心中,包括:获取模块,写入模块及发送模块,
所述获取模块用于获取至少一个待同步数据;其中,每个待同步数据对应一个数据序号,所述数据序号反映其对应的待同步数据被所述第一数据中心获取的时间顺序;
所述写入模块用于将所述待同步数据写入第一数据中心的至少一个存储设备;
所述发送模块用于基于所述数据序号反映的所述时间顺序以及待同步数据在第二数据中心处的接收状态将待同步数据发送到第二数据中心进行同步。
9.根据权利要求8所述的***,其特征在于,所述发送模块还用于按照所述数据序号反映的所述时间顺序将待同步数据依次序发送到第二数据中心进行同步。
10.根据权利要求8所述的***,其特征在于,还包括发送队列维护模块,用于维护至少一个发送队列;所述发送队列至少用于记录至少一个已发送的待同步数据的数据序号;
所述发送模块还用于基于所述发送队列将待同步数据发送到第二数据中心进行同步。
11.根据权利要求10所述的***,其特征在于,所述发送队列维护模块还用于:
待某待同步数据发送给第二数据中心后,将该待同步数据对应的数据序号记录到发送队列中。
12.根据权利要求10所述的***,其特征在于,所述发送队列维护模块还用于:
判断是否接收到第二数据中心反馈的与所述发送队列中所反映的时间顺序最早的数据序号对应的待同步数据的到达信息,
若是,将该数据序号从发送队列中删除;
若否,保留所述发送队列中该数据序号,以及保留所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号。
13.根据权利要求10所述的***,其特征在于,所述发送模块还用于:
判断某数据序号在所述发送队列中的保留时间是否超时,若是则重新向第二数据中心发送该数据序号对应的待同步数据以及所述发送队列中反映的所述时间顺序在该数据序号之后的数据序号对应的待同步数据。
14.根据权利要求10所述的***,其特征在于,所述发送队列存储于第一数据中心的至少一个存储设备中。
15.一种计算机可读存储介质,其特征在于,所述存储介质用于存储计算机指令,当计算机读取存储介质中的计算机指令后,计算机运行如权利要求1-7中任一所述的用于多数据中心之间数据同步方法。
16.一种用于多数据中心之间的数据同步装置,其特征在于,包括至少一个处理器以及至少一个存储介质;
所述至少一个存储介质用于存储计算机指令;
所述至少一个处理器用于执行所述计算机指令以实现如权利要求1-7任一所述的用于多数据中心之间数据同步的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810856478.2A CN109033391B (zh) | 2018-07-31 | 2018-07-31 | 一种多数据中心之间数据同步方法、***及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810856478.2A CN109033391B (zh) | 2018-07-31 | 2018-07-31 | 一种多数据中心之间数据同步方法、***及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109033391A true CN109033391A (zh) | 2018-12-18 |
CN109033391B CN109033391B (zh) | 2019-12-31 |
Family
ID=64647062
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810856478.2A Active CN109033391B (zh) | 2018-07-31 | 2018-07-31 | 一种多数据中心之间数据同步方法、***及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109033391B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783534A (zh) * | 2018-12-25 | 2019-05-21 | 浙江口碑网络技术有限公司 | 统计数据的处理方法及装置,评价数据的处理方法及装置 |
CN109829016A (zh) * | 2019-01-25 | 2019-05-31 | 网宿科技股份有限公司 | 一种数据同步方法及装置 |
CN110354491A (zh) * | 2019-08-05 | 2019-10-22 | 网易(杭州)网络有限公司 | 全球同服游戏***、数据同步方法、电子设备及介质 |
CN111639139A (zh) * | 2020-06-04 | 2020-09-08 | 中国工商银行股份有限公司 | 针对数据中心的数据同步方法、装置、计算设备以及介质 |
CN112699178A (zh) * | 2019-10-23 | 2021-04-23 | 成都源本创新科技有限责任公司 | 一种数据协同方法和*** |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713895A (zh) * | 2013-11-29 | 2014-04-09 | 北京奇虎科技有限公司 | 一种数据发送方法和装置 |
CN104734838A (zh) * | 2013-12-20 | 2015-06-24 | 深圳市国微电子有限公司 | 一种同步数据的方法、***及交换矩阵 |
CN105338093A (zh) * | 2015-11-16 | 2016-02-17 | 中国建设银行股份有限公司 | 一种数据同步方法和*** |
CN105471630A (zh) * | 2015-11-18 | 2016-04-06 | 武汉日电光通信工业有限公司 | 大容量分组传送***下的北向***消息分发***及方法 |
CN106055723A (zh) * | 2016-08-17 | 2016-10-26 | 浪潮软件股份有限公司 | 一种数据库数据同步装置、***及方法 |
CN106921703A (zh) * | 2015-12-25 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 跨境数据同步的方法、***,以及境内和境外数据中心 |
CN107231400A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 一种数据的同步方法和装置 |
CN107644030A (zh) * | 2016-07-20 | 2018-01-30 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及*** |
-
2018
- 2018-07-31 CN CN201810856478.2A patent/CN109033391B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103713895A (zh) * | 2013-11-29 | 2014-04-09 | 北京奇虎科技有限公司 | 一种数据发送方法和装置 |
CN104734838A (zh) * | 2013-12-20 | 2015-06-24 | 深圳市国微电子有限公司 | 一种同步数据的方法、***及交换矩阵 |
CN105338093A (zh) * | 2015-11-16 | 2016-02-17 | 中国建设银行股份有限公司 | 一种数据同步方法和*** |
CN105471630A (zh) * | 2015-11-18 | 2016-04-06 | 武汉日电光通信工业有限公司 | 大容量分组传送***下的北向***消息分发***及方法 |
CN106921703A (zh) * | 2015-12-25 | 2017-07-04 | 阿里巴巴集团控股有限公司 | 跨境数据同步的方法、***,以及境内和境外数据中心 |
CN107231400A (zh) * | 2016-03-25 | 2017-10-03 | 阿里巴巴集团控股有限公司 | 一种数据的同步方法和装置 |
CN107644030A (zh) * | 2016-07-20 | 2018-01-30 | 华为技术有限公司 | 分布式数据库数据同步方法、相关装置及*** |
CN106055723A (zh) * | 2016-08-17 | 2016-10-26 | 浪潮软件股份有限公司 | 一种数据库数据同步装置、***及方法 |
Non-Patent Citations (1)
Title |
---|
贾宇清 等: ""数据同步新机制在民航实时交易***中的应用"", 《中国民航大学学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109783534A (zh) * | 2018-12-25 | 2019-05-21 | 浙江口碑网络技术有限公司 | 统计数据的处理方法及装置,评价数据的处理方法及装置 |
CN109829016A (zh) * | 2019-01-25 | 2019-05-31 | 网宿科技股份有限公司 | 一种数据同步方法及装置 |
CN109829016B (zh) * | 2019-01-25 | 2021-06-01 | 网宿科技股份有限公司 | 一种数据同步方法及装置 |
CN110354491A (zh) * | 2019-08-05 | 2019-10-22 | 网易(杭州)网络有限公司 | 全球同服游戏***、数据同步方法、电子设备及介质 |
CN112699178A (zh) * | 2019-10-23 | 2021-04-23 | 成都源本创新科技有限责任公司 | 一种数据协同方法和*** |
CN111639139A (zh) * | 2020-06-04 | 2020-09-08 | 中国工商银行股份有限公司 | 针对数据中心的数据同步方法、装置、计算设备以及介质 |
CN111639139B (zh) * | 2020-06-04 | 2024-02-02 | 中国工商银行股份有限公司 | 针对数据中心的数据同步方法、装置、计算设备以及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109033391B (zh) | 2019-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109033391A (zh) | 一种多数据中心之间数据同步方法、***及计算机可读存储介质 | |
JP6999580B2 (ja) | インターネットクラウドでホストされる自然言語による対話型メッセージングシステムサーバ連携 | |
JP7068195B2 (ja) | インターネットクラウドでホストされる自然言語による対話型メッセージングシステムセッション化部 | |
JP6952060B2 (ja) | インターネットクラウドでホストされる自然言語による対話型メッセージングシステムユーザリゾルバ | |
US20200221257A1 (en) | System and method for destination predicting | |
AU2016102436A4 (en) | Methods and systems for carpooling | |
CN109416770A (zh) | 一种用于监控按需服务的***和方法 | |
KR102427276B1 (ko) | 모바일 클라우드 서비스에 대한 미리-형성된 명령어들 | |
US11800327B2 (en) | Systems and methods for sharing information between augmented reality devices | |
US9319843B2 (en) | Adaptive acceleration-based reminders | |
JP6869270B2 (ja) | 組み合わせによって生じるサービス要請者を決定するためのシステム及び方法 | |
CN109313775A (zh) | 用于分发服务请求的***和方法 | |
US10937235B2 (en) | Dynamic image capture system | |
CN110169190B (zh) | 用于帮助在两个终端之间建立连接的***和方法 | |
JP7465869B2 (ja) | ユニバーサルガバナンス | |
CN107480237A (zh) | 面向异构桌面云平台的数据融合方法及*** | |
JP6772302B2 (ja) | 情報処理のためのシステム及び方法 | |
US20190066002A1 (en) | Group travel system in an online marketplace | |
CN111277618B (zh) | 一种信息推送方法、装置、电子设备及存储介质 | |
WO2016197871A1 (zh) | 事务处理方法及装置 | |
US11308564B2 (en) | Hierarchical generation of booking probability | |
EP3628092A1 (en) | Systems and methods for data storage and data query | |
CN111435936B (zh) | 云主机创建方法、装置、服务器及计算机可读存储介质 | |
CN110462660A (zh) | 控制计算***以生成用于日历共享的预先接受的缓存 | |
US20220374955A1 (en) | Auto-generation of online listing information |
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 |