数据同步方法和系统与流程

文档序号:17726993发布日期:2019-05-22 02:34阅读:166来源:国知局
数据同步方法和系统与流程

本申请涉及通信技术领域,特别是涉及一种数据同步方法和系统。



背景技术:

随着网络技术的发展,互联网给人们的日常生活带来了极大的便利。人们可以通过计算机设备在网络上进行交易或数据操作等。这样,常常会产生需要在不同系统间进行数据同步的情况。比如,用户在网络生生成一笔订单交易后后,审核人员可以通过业务系统进行审核。那么就需要将该业务系统中的订单信息同步至另一个提供查询功能的查询系统,以便用户可以随时查看订单信息。

传统的在不同系统间进行数据同步时,通常使用http直连来进行数据同步。而采用http直连的方式进行数据同步,往往在有大量数据需同步的情况下导致同步的双方系统压力都很大,常常出现同步异常,使得数据同步不够灵活。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种灵活的数据同步方法和系统。

一种数据同步方法,包括:

业务服务器向队列服务器推送待同步数据;

所述队列服务器确定与所述待同步数据相对应的队列标识;

所述队列服务器将所述待同步数据缓存至与所述队列标识相应的数据缓存队列中;

消费服务器向所述队列服务器发送数据同步请求;所述数据同步请求携带队列标识;

所述队列服务器响应于所述数据同步请求,反馈与所述队列标识相应的数据缓存队列中的待同步数据。

一种数据同步系统,所述系统包括业务服务器、队列服务器和消费服务器;

所述业务服务器用于向所述队列服务器推送待同步数据;

所述队列服务器用于确定与所述待同步数据相对应的队列标识;将所述待同步数据缓存至与所述队列标识相应的数据缓存队列中;

所述消费服务器用于向所述队列服务器发送数据同步请求;所述数据同步请求携带队列标识;

所述队列服务器用于响应于所述数据同步请求,反馈与所述队列标识相应的数据缓存队列中的待同步数据。

上述数据同步方法和系统,业务服务器向队列服务器推送待同步数据,队列服务器接收待同步数据后确定与待同步数据相对应的队列标识。队列服务器再将待同步数据缓存至与队列标识相应的数据缓存队列中。消费服务器向队列服务器发送携带有队列标识的数据同步请求,队列服务器响应于该数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。这样,当业务服务器和消费服务器之间需要进行数据同步时,可通过队列服务器将待同步数据进行相应的缓存。而消费服务器在需要时,就可根据队列标识,从队列服务器中获取待同步数据。这样,在面对大量数据需同步的情况时,可大大缓解业务服务器和消费服务器的处理压力,提高了数据同步的灵活性。

附图说明

图1为一个实施例中数据同步方法的应用场景图;

图2为一个实施例中数据同步方法的流程示意图;

图3为另一个实施例中数据同步方法的流程示意图;

图4为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的数据同步方法,可以应用于如图1所示的应用环境中。其中,第一终端110通过网络与业务服务器101进行通信,业务服务器101通过网络与队列服务器102进行通信,队列服务器102与消费服务器103进行通信,消费服务器103与第二终端120进行通信。

业务服务器101通过第一终端110获取待同步数据,业务服务器101将待同步数据推送至队列服务器102。队列服务器102确定与待同步数据相对应的队列标识,并将待同步数据缓存至与所述队列标识相应的数据缓存队列中。消费服务器103向队列服务器102发送携带有队列标识的数据同步请求。队列服务器102响应于该数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。第二终端120触发针对于消费服务器103的数据操作指令,并从消费服务器103同步的数据中获取相应的数据。

其中,第一终端110和第二终端120可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。业务服务器101、队列服务器102、以及消费服务器103均可以用独立的服务器或者是多个服务器组成的服务器集群来实现。

在一个实施例中,如图2所示,提供了一种数据同步方法,以该方法应用于图1中的数据同步系统为例进行说明,包括以下步骤:

s202,业务服务器向队列服务器推送待同步数据。

其中,业务服务器是用于提供业务服务的服务器。业务服务具体可以是借贷业务、订单生成业务、订单审批业务、或信息推广业务等。队列服务器是用于缓存数据的服务器。队列服务器具体可以是activemq(消息中间件系统)、kafka(发布订阅类消息队列)或msmq(microsoftmessagequeuing,微软消息队列)等。待同步数据是需要从一个系统同步至另一个系统的数据。在本实施例中,系统可以通过独立的服务器或服务器集群来实现。

具体地,业务服务器可实时或定时向队列服务器推送当前的待同步数据。队列服务器可以通过网络连接接收业务服务器推送的待同步数据。

举例说明,当业务服务器为订单审批服务器时,订单审批服务器可将预设时间段内产生的所有和订单相关的信息(比如,订单审核状态信息)推送至队列服务器。

在一个实施例中,队列服务器可提供对外的api接口(applicationprogramminginterface,应用程序编程接口)。业务服务器可通过调用队列服务器提供的api接口,将待同步数据发送至队列服务器。

在一个实施例中,业务服务器中包括有多个数据获取模块,每个数据获取模块都有唯一的标识,在本实施例中可以称作来源方标识。业务服务器可通过多个数据获取模块获取待同步数据,再将待同步数据推送至队列服务器。

在一个实施例中,业务服务器获取待同步数据后,根据来源方标识确定与来源方标识关联的队列标识。业务服务器可将队列标识添加至待同步数据中,一并推送至队列服务器。

在一个实施例中,终端上运行有与该业务服务器对应的客户端,用户可在客户端中输入相应的数据,比如,用户可在客户端提供的交易界面中输入交易信息。或者,用户可通过终端打开业务服务器提供的网页界面,用户可在网页界面中输入相应的数据。进而,终端可根据用户输入的数据生成待同步数据。比如,终端可根据用户输入的交易信息,生成订单相关信息。其中,订单相关信息具体可包括当前的时间、订单号、用户标识、订单金额、订单状态等。该订单相关信息就是待同步数据。

在一个实施例中,业务服务器可提供api接口,终端可通过业务服务器提供的api接口和业务服务器通信,工作人员可将待同步数据通过api接口传输至业务服务器。待同步数据,比如,关于某种产品的促销广告信息等。

s204,队列服务器确定与待同步数据相对应的队列标识。

具体地,队列服务器获取待同步数据后,可确定该待同步数据的来源方,根据来源方确定相应的队列标识。在一个实施例中,队列服务器中可存储有来源方标识和队列标识相对应的关联关系表。比如,假如a来源方和a队列相对应,那么队列服务器就将从a来源方获得的待同步数据,存储至a队列所对应的数据缓存队列中。

在一个实施例中,业务服务器获取待同步数据后,可将相应的队列标识添加至待同步数据中。队列服务器在获取待同步数据后,可从中提取出队列标识。

s206,队列服务器将待同步数据缓存至与队列标识相应的数据缓存队列中。

其中,缓存用于暂时存储数据。数据缓存队列是用于暂时存储数据的队列。具体地,队列服务器可将接收的待同步数据,按相应的队列标识,将待同步数据缓存至队列标识所标识的数据缓存队列。

在一个实施例中,队列服务器可确定待同步数据的获取时间,按照时间顺序,依次将待同步数据缓存至与队列标识相应的数据缓存队列的队尾。

s208,消费服务器向队列服务器发送数据同步请求;数据同步请求携带队列标识。

其中,消费服务器是用于接收待同步数据的服务器。消费服务器具体可以是数据分析服务器、警报服务器、或提供消息群发的服务器等。

具体地,消费服务器可根据自身负载状态向队列服务器发送携带有队列标识的数据同步请求。消费服务器可确定当期的负载状态,当消费服务器处于低负载状态时,可向队列服务器发起数据同步请求。或者,消费服务器也可按预设时间间隔,自动向队列服务器发送数据同步请求。

在一个实施例中,消费服务器包括多个消费模块,各个消费模块可根据自身负载状态、或定时从队列服务器中并行读取相应的数据缓存队列中的待同步数据。

在一个实施例中,每个消费模块都有唯一的标识,在这里可以称作目标方标识。消费服务器中可存储有目标方标识和队列标识相对应的关联关系表。比如,假如a’目标方和a队列相对应,那么消费服务器发送的数据同步请求中则携带a队列的队列标识。

s210,队列服务器响应于数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。

具体地,队列服务器在接收到来自于消费服务器的数据同步请求后,根据该数据同步请求中所携带的队列标识,将与该队列标识相应的数据缓存队列中的待同步数据反馈至消费服务器。

在一个实施例中,消费服务器包括多个消费模块,各消费模块可从队列服务器中并行读取相对应的数据缓存队列中的待同步数据。消费服务器也通过调用队列服务器提供的api接口,从队列服务器的数据缓存队列读取待同步数据。

在一个实施例中,消费服务器成功同步了待同步数据后,可将同步的数据存储至本地的存储介质中。消费服务器可接收来自于终端的数据操作指令,消费服务器根据接收的数据操作指令,查找相应的数据,并响应相应的操作。

举例说明,当待同步数据包括订单相关信息,消费服务器包括订单查询服务器时,终端可运行有消费服务器对应的客户端,用户可通过客户端触发查询某订单的查询指令,则消费服务器响应于该查询指令,查询相应的订单相关信息并反馈至终端,终端按预设规则展示查询到的订单相关信息。

或者,当待同步数据包括推广信息,消费服务器包括提供消息群发的服务器时,消费服务器可接收来自于终端的信息发送指令,则响应于该信息发送指令,向相应的用户账号发送指定的推广信息(也就是消费服务器从数据缓存队列中读取的推广信息)。

在一个实施例中,该数据同步方法还包括状态更新的步骤,该步骤具体包括:当消费服务器成功接收队列服务器反馈的待同步数据后,向队列服务器反馈表示完成数据同步的第二反馈信息;队列服务器根据第二反馈信息,将反馈的待同步数据的数据状态更新为已同步状态。

具体地,当消费服务器成功同步了数据缓存队列中的待同步数据后,消费服务器会向队列服务器反馈表示完成数据同步的第二反馈信息。队列服务器在接收到第二反馈信息后,可将已将完成同步的数据的数据状态更新为已同步状态,后续消费服务器读取时不再重复读取。

在一个实施例中,业务服务器包括订单审批服务器;待同步数据包括订单相关信息;消费服务器包括订单查询服务器。

具体地,在具体应用场景中,业务服务器具体可以是订单审批服务器,消费服务器具体可以是提供订单查询服务的订单查询服务器。待同步数据具体可以是订单相关信息。当关于订单的审批进度有更新时,订单审批服务器可将相应的订单相关信息推送至队列服务器,队列服务器确定与该订单相关信息对应的队列标识,将订单相关信息缓存至与队列标识相应的数据缓存队列中。查询服务器则可按队列标识从相应的数据缓存队列中读取订单相关信息,用于提供客户端应用的查询功能。

上述数据同步方法,业务服务器向队列服务器推送待同步数据,队列服务器接收待同步数据后确定与待同步数据相对应的队列标识。队列服务器再将待同步数据缓存至与队列标识相应的数据缓存队列中。消费服务器向队列服务器发送携带有队列标识的数据同步请求,队列服务器响应于该数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。这样,当业务服务器和消费服务器之间需要进行数据同步时,可通过队列服务器将待同步数据进行相应的缓存。而消费服务器在需要时,就可根据队列标识,从队列服务器中获取待同步数据。这样,在面对大量数据需同步的情况时,可大大缓解业务服务器和消费服务器的处理压力,提高了数据同步的灵活性。

在一个实施例中,步骤s202,也就是业务服务器向队列服务器推送待同步数据的步骤具体包括:业务服务器获取待同步数据;业务服务器确定与待同步数据对应的来源方标识;业务服务器确定与来源方标识相应的优先级级别;业务服务器按相应的优先级级别的顺序,依次向队列服务器推送待同步数据。

其中,来源方标识用于唯一标识待同步数据的来源方,具体可以是字母、数字、汉字或字符串中的至少一种。优先级级别是优先级的级别,比如高优先级、中优先级和低优先级等。

具体地,业务服务器中包括有多个数据获取模块,每个数据获取模块都有唯一的标识,在本实施例中可以称作来源方标识。业务服务器可通过多个数据获取模块获取待同步数据,其中,每个获取模块可分别获取不同类别的数据。比如,a获取模块可获取订单相关信息、b获取模块可获取业务推广信息、c获取模块可获取提示预警信息等。

在一个实施例中,终端上运行有与该业务服务器对应的客户端,用户可在客户端中输入相应的数据。或者,用户可通过终端打开业务服务器提供的网页界面,用户可在网页界面中输入相应的数据。进而,终端可根据用户输入的数据生成待同步数据。终端可将生成的待同步数据发送至业务服务器的预设获取模块。

在一个实施例中,业务服务器可提供api接口,终端可通过业务服务器提供的api接口和业务服务器通信,工作人员可将待同步数据通过api接口传输至业务服务器的预设获取模块。

进一步地,业务服务器在获取到待同步数据后,可确定待同步数据具体是哪个获取模块获取的,进而确定相应的来源方标识。在一个实施例中,业务服务器可预先设置不同的获取模块对应不同的优先级级别,以此来设置不同类别信息对应的优先级。

在一个实施例中,业务服务器在确定来源方标识相应的优先级级别后,按优先级级别的顺序,依次向队列服务器推送待同步数据。比如,假如a获取模块对应的优先级级别为高优先级,那么相应的,a获取模块获取的待同步数据将会被优先推送至队列服务器。

在一个实施例中,当业务服务器中存在大量待推送的待同步数据时,业务服务器可按照各待同步数据产生的时间的先后顺序进行相应的推送。当待同步数据产生的时间相同时,则对于同时产生的待同步数据,业务服务器按各待同步数据所对应的来源方标识的优先级级别的顺序,依次向队列服务器推送待同步数据。

上述实施例中,业务服务器通过待同步数据的来源方标识所对应的优先级级别的顺序,依次向队列服务器推送待同步数据,这样,在存在大量待推送的待同步数据时,可优先推送重要的待同步数据,避免了不重要的待同步数据占用有限的资源,可实现待同步数据的灵活推送。

在一个实施例中,该数据同步方法还包括重复推送待同步数据的步骤,该步骤具体包括:当业务服务器向队列服务器推送待同步数据后,业务服务器检测队列服务器反馈的第一反馈信息;当在预设时段内未检测到队列服务器反馈的第一反馈信息时,业务服务器确定与待同步数据所对应的来源方标识相对应的优先级级别;业务服务器确定与优先级级别相应的重复推送方式;业务服务器按相应的重复推送方式对待同步数据进行重复推送。

具体地,当业务服务器向队列服务器推送待同步数据后,当队列服务器成功接收待同步数据后,队列服务器会向业务服务器反馈表示成功接收的第一反馈信息。当业务服务器在预设时段内未接收到队列服务器反馈的第一反馈信息时,则表示队列服务器接收数据失败。队列服务器接收待同步数据失败可能是因为网络故障、业务服务器发送数据失败、或队列服务器故障等原因。

进一步地,当业务服务器在预设时段内未接收到队列服务器反馈的第一反馈信息时,业务服务器可确定与待同步数据所对应的来源方标识相对应的优先级级别,并确定与优先级级别相应的重复推送方式。在本实施例中,业务服务器可预先设置不同的优先级级别,对应不同的重复推送方式。

举例说明,业务服务器可包括多个数据获取模块,比如包括数据获取模块a、数据获取模块b和数据获取模块c。其中,数据获取模块a对应高优先级的数据推送级别;数据获取模块b对应中优先级的数据推送级别;数据获取模块c对应低优先级的数据推送级别。

当业务服务器在预设时段内未接收到队列服务器反馈的第一反馈信息时,业务服务器会按以下方式执行重发步骤:对于来源于低优先级的数据获取模块c的待同步数据,推送失败后就不再推送;对于来源于中优先级的数据获取模块b的待同步数据,推送失败后会重新推送,直到失败次数达预设次数(比如,三次)后不再推送;对于来源于高优先级的数据获取模块a的待同步数据,推送失败后会重新推送,若推送失败次数达预设次数(比如,三次)时,则将该待同步数据存储至业务服务器的数据库中,待后续查询。

上述实施例中,当业务服务器向队列服务器推送待同步数据后,在预设时段内未检测到队列服务器反馈的第一反馈信息时,则可判定当前的数据推送失败。业务服务器可按待同步数据的来源方标识相对应的优先级级别进行相应的数据重复推送。这样,对于推送失败的数据进行重复推送,可以避免待同步数据在同步过程中的遗漏。依据待同步数据的来源方对应的优先级级别采取不同的重复推送方式进行待同步数据的重复推送,则大大加强了数据同步的灵活性。

在一个实施例中,步骤208,也就是消费服务器向队列服务器发送数据同步请求的步骤具体包括:消费服务器获取数据同步指令;消费服务器确定与数据同步指令相对应的目标方标识;消费服务器根据目标方标识确定相应的队列标识;消费服务器根据队列标识生成数据同步请求,并向队列服务器发送数据同步请求。

在一个实施例中,消费服务器可接收来自于终端触发的数据同步指令。或者消费服务器可通过定时装置定时触发数据同步指令并获取数据同步指令。消费服务器也可实时监测当前自身的负载状态,当负载状态满足预设负载条件时,则触发数据同步指令。其中,预设负载条件具体可以是负载量小于预设阈值等。

在一个实施例中,消费服务器可包括多个消费模块,每个消费模块都有唯一的标识,在这里可以称作目标方标识。当消费服务器获取数据同步指令后,可确定具体是哪个消费模块所触发的数据同步指令,也就是确定相应的目标方标识。

在一个实施例中,消费服务器可预先存储有目标方标识和队列标识相对应的关联关系表。消费服务器在确定与目标方标识相应的队列标识后,可根据队列标识生成数据同步请求。比如,假如a’目标方和a队列相对应,那么消费服务器发送的数据同步请求中则携带a队列的队列标识。

在一个实施例中,消费服务器可根据自身负载状态、或定时通过各消费模块从队列服务器中并行读取相应的数据缓存队列中的待同步数据,以完成数据的同步。

上述实施例中,消费服务器通过与数据同步指令相应的目标方标识所对应的队列标识,从队列服务器中读取相应数据缓存队列中缓存的待同步数据。这样,通过队列标识进行有序存储,再通过队列标识进行有序读取,可以大大提高数据同步的效率。

在一个实施例中,该数据同步方法还包括重复接收的步骤,该步骤具体包括:当消费服务器未接收到队列服务器反馈的待同步数据时,消费服务器确定与数据同步请求所对应的目标方标识相应的优先级级别;消费服务器确定与优先级级别相对应的重复接收方式;消费服务器按相应的重复接收方式对待同步数据进行重复接收。

具体地,当网络故障、队列服务器故障或消费服务器的消费模块故障时,消费服务器接收队列服务器反馈的待同步数据可能会出现异常。当消费服务器未接收到队列服务器反馈的待同步数据时,消费服务器可确定与数据同步请求所对应的目标方标识相应的优先级级别,并确定相应的重复接收方式。在本实施例中,消费服务器可预先设置不同的优先级级别,对应不同的重复接收方式。

举例说明,消费服务器可包括多个消费模块,比如包括消费模块a’、消费模块b’和消费模块c’。其中,消费模块a’对应高优先级的数据读取级别;消费模块b’对应中优先级的数据读取级别;消费模块c’对应低优先级的数据读取级别。

消费服务器中的消费模块在从队列服务器中读取待同步数据失败后,消费服务器会按以下方式执行重复接收的步骤:对于低优先级的消费模块c’读取待同步数据,读取失败后就不再读取;对于中优先级的消费模块b’读取待同步数据,读取失败后会重新读取,直到失败次数达到预设次数(比如,三次)后不再读取;对于高优先级的消费模块a’读取待同步数据,读取失败后会重新读取,若读取失败达次数达预设次数(比如三次)后,则将需读取的待同步数据的标识或队列标识等信息存储至消费服务器的数据库中,待后续重新读取。

上述实施例中,当消费服务器未接收到队列服务器反馈的待同步数据时,则可判定数据读取失败。消费服务器可按数据同步请求所对应的目标方标识相应的优先级级别进行相对应的数据重复读取。这样,对于读取失败的数据进行重复读取,可以避免待同步数据在同步过程中的遗漏。依据待同步数据的目标方对应的优先级级别采取不同的重复接收方式进行待同步数据的重复读取,则大大加强了数据同步的灵活性。

进一步地,业务服务器可以有多个,相应的,消费服务器也可以有多个。针对这种情况,队列服务器可设置二级队列标识用以分类区分。比如,相关联的业务服务器和消费服务器可以与数据缓存队列的一级标签相对应;具体的数据获取模块和相关联的消费模块则可以与数据缓存队列的二级标签相对应。

举例说明,a业务服务器和a’消费服务器相关联,也就是a业务服务器的待同步数据需传输至a’消费服务器。那么所有的从a业务服务器传输至a’消费服务器的待同步数据都缓存至一级标签为a的数据缓存队列集群。进一步的,当a业务服务器中的数据获取模块a1获取的待同步数据传输至a’消费服务器中的消费模块a1’时,队列服务器则将待同步数据缓存至a数据缓存队列集群中的a1数据缓存队列。

在一个具体的实施例中,如图3所示,该数据同步方法具体包括以下步骤:

s302,业务服务器获取待同步数据。

s304,业务服务器确定与待同步数据对应的来源方标识。

s306,业务服务器确定与来源方标识相应的优先级级别。

s308,业务服务器按相应的优先级级别的顺序,依次向队列服务器推送待同步数据。

s310,当业务服务器向队列服务器推送待同步数据后,业务服务器检测队列服务器反馈的第一反馈信息。

s312,当在预设时段内未检测到队列服务器反馈的第一反馈信息时,业务服务器确定与待同步数据所对应的来源方标识相对应的优先级级别。

s314,业务服务器确定与优先级级别相应的重复推送方式。

s316,业务服务器按相应的重复推送方式对待同步数据进行重复推送。

s318,队列服务器确定与待同步数据相对应的队列标识。

s320,队列服务器将待同步数据缓存至与队列标识相应的数据缓存队列中。

s322,消费服务器获取数据同步指令。

s324,消费服务器确定与数据同步指令相对应的目标方标识。

s326,消费服务器根据目标方标识确定相应的队列标识。

s328,消费服务器根据队列标识生成数据同步请求,并向队列服务器发送数据同步请求。

s330,队列服务器响应于数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。

s332,当消费服务器未接收到队列服务器反馈的待同步数据时,消费服务器确定与数据同步请求所对应的目标方标识相应的优先级级别。

s334,消费服务器确定与优先级级别相对应的重复接收方式。

s336,消费服务器按相应的重复接收方式对待同步数据进行重复接收。

s338,当消费服务器成功接收队列服务器反馈的待同步数据后,向队列服务器反馈表示完成数据同步的第二反馈信息。

s340,队列服务器根据第二反馈信息,将反馈的待同步数据的数据状态更新为已同步状态。

上述数据同步方法,业务服务器向队列服务器推送待同步数据,队列服务器接收待同步数据后确定与待同步数据相对应的队列标识。队列服务器再将待同步数据缓存至与队列标识相应的数据缓存队列中。消费服务器向队列服务器发送携带有队列标识的数据同步请求,队列服务器响应于该数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。这样,当业务服务器和消费服务器之间需要进行数据同步时,可通过队列服务器将待同步数据进行相应的缓存。而消费服务器在需要时,就可根据队列标识,从队列服务器中获取待同步数据。这样,在面对大量数据需同步的情况时,可大大缓解业务服务器和消费服务器的处理压力,提高了数据同步的灵活性。

应该理解的是,虽然图2-3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图1所示,提供了一种数据同步系统100,系统包括业务服务器101、队列服务器102和消费服务器103。

业务服务器101用于向队列服务器推送待同步数据。

队列服务器102用于确定与待同步数据相对应的队列标识;将待同步数据缓存至与队列标识相应的数据缓存队列中。

消费服务器103用于向队列服务器发送数据同步请求;数据同步请求携带队列标识。

队列服务器102还用于响应于数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。

在一个实施例中,业务服务器101还用于获取待同步数据,确定与待同步数据对应的来源方标识,确定与来源方标识相应的优先级级别,按相应的优先级级别的顺序,依次向队列服务器推送待同步数据。

在一个实施例中,业务服务器101还用于当向队列服务器102推送待同步数据后,检测队列服务器102反馈的第一反馈信息;当在预设时段内未检测到队列服务器102反馈的第一反馈信息时,确定与待同步数据所对应的来源方标识相对应的优先级级别;确定与优先级级别相应的重复推送方式;按相应的重复推送方式对待同步数据进行重复推送。

在一个实施例中,消费服务器103还用于获取数据同步指令,确定与数据同步指令相对应的目标方标识,根据目标方标识确定相应的队列标识,根据队列标识生成数据同步请求,并向队列服务器发送数据同步请求。

在一个实施例中,消费服务器103还用于当未接收到队列服务器102反馈的待同步数据时,确定与数据同步请求所对应的目标方标识相应的优先级级别;确定与优先级级别相对应的重复接收方式;按相应的重复接收方式对待同步数据进行重复接收。

在一个实施例中,消费服务器103还用于当成功接收队列服务器102反馈的待同步数据后,向队列服务器102反馈表示完成数据同步的第二反馈信息。队列服务器102还用于根据第二反馈信息,将反馈的待同步数据的数据状态更新为已同步状态。

在一个实施例中,业务服务器包括订单审批服务器;待同步数据包括订单相关信息;消费服务器包括订单查询服务器。

上述数据同步系统,业务服务器向队列服务器推送待同步数据,队列服务器接收待同步数据后确定与待同步数据相对应的队列标识。队列服务器再将待同步数据缓存至与队列标识相应的数据缓存队列中。消费服务器向队列服务器发送携带有队列标识的数据同步请求,队列服务器响应于该数据同步请求,反馈与队列标识相应的数据缓存队列中的待同步数据。这样,当业务服务器和消费服务器之间需要进行数据同步时,可通过队列服务器将待同步数据进行相应的缓存。而消费服务器在需要时,就可根据队列标识,从队列服务器中获取待同步数据。这样,在面对大量数据需同步的情况时,可大大缓解业务服务器和消费服务器的处理压力,提高了数据同步的灵活性。

关于数据同步系统的具体限定可以参见上文中对于数据同步方法的限定,在此不再赘述。上述数据同步系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以用作业务服务器、队列服务器或消费服务器,其内部结构图可以如图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储待同步数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据同步方法。

本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1