基于消息路由方式的数据同步方法和系统与流程

文档序号:11180535阅读:417来源:国知局
基于消息路由方式的数据同步方法和系统与流程

本发明涉及数据处理技术领域,具体地说,涉及一种基于消息路由方式的数据同步方法和系统。



背景技术:

在电商配送订单包裹过程中,需要由中心交易平台将此订单的运单信息下发到包裹经过的分拣中心。这样每个分拣中心才能知道包裹的去向,从而快速分拣。因而,分拣中心的系统及时、快速地获得运单数据成为了准确分拣包裹的关键。



技术实现要素:

本发明要解决的技术问题在于,针对现有技术的不足,提供一种基于消息路由方式的数据同步方法和系统,用于解决现有技术中不同系统间的数据同步成本高、可靠性差的问题。

为了解决上述技术问题,根据本发明的一个方面,本发明提供了一种基于消息路由方式的数据同步方法,其中,包括如下步骤:

将目标数据经过数据路由系统从数据源系统转发到与远程目标系统对应的消息队列中;

所述消息队列将所述目标数据推送到对应的远程目标系统;和

所述远程目标系统接收所述消息队列推送的所述目标数据,并写入本地数据库中。

优选地,将目标数据经过数据路由系统从数据源系统转发到与远程目标系统对应的消息队列中之前还包括:

在消息中间件中建立与目标系统匹配的消息队列,并为每个消息队列设置数据接口。

优选地,将目标数据经过数据路由系统从数据源系统转发到与远程目标系统对应的消息队列中,具体包括:

将目标数据写入与远程目标系统对应的消息队列中;和

根据目标系统和对应的消息队列,配置与其对应的数据接口。

优选地,所述消息队列将所述目标数据推送到对应的远程目标系统,具体包括:

检测所述消息队列中是否有目标数据,如果有需要推送的目标数据,通过所述消息队列的数据接口向对应的目标系统输出所述的目标数据。

优选地,所述目标数据包括运单数据,或所述远程目标系统包括远程分拣中心。

优选地,所述运单数据包括运单号和至少一个目标系统的数据。

为了解决上述技术问题,根据本发明的另一个方面,本发明提供了一种基于消息路由方式的数据同步系统,其中,包括:

消息中间件集群,用于为不同的目标系统建立相应的消息队列,并将队列中的目标数据推送到相应的目标系统;

数据路由系统,与所述消息中间件集群相连接,用于将需要同步到目标系统的目标数据从数据源系统转发到所述消息中间件集群中对应的消息队列中;和

目标系统,用于接收所述消息中间件集群推送的、与其对应的消息队列中的目标数据,并将所述目标数据写入相应的数据库。

优选地,所述消息中间件集群包括:

多个消息队列,分别与对应的目标系统连接,用于存放从数据源系统转发的目标数据;

消息中间件接口,与所述数据路由系统相连接,用于将数据路由系统转发来的目标数据写入相应的消息队列;和

多个消息队列数据接口,分别与对应的消息队列相连接,用于从对应的消息队列中取出目标数据,并推送给相应的目标系统。

优选地,所述目标系统至少为一个,且包括:

数据库,用于存储从数据源系统下发的目标数据;和

数据接口,与所述数据库相连接,用于接收所述消息中间件集群推 送的目标数据,并将其写入到所述数据库中。

优选地,基于消息路由方式的数据同步系统还包括:

数据源系统,用于产生需要同步到目标系统的目标数据,并将所述目标数据发送给数据路由系统。

本发明通过消息中间件自身所具有的消息消费失败重试功能,可以在网络波动后继续从中断点传输运单数据,保证数据不丢失。即使出现数据库物理机损坏的情况下,也能在新机数据库启动后从断点续传数据,提高了数据同步的可靠性。

通过消息中间件集群上的多个区域的消息队列代替进行数据库复制的机器,有效降低系统部署成本。

附图说明

通过参照以下附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:

图1为现有技术中数据同步的原理结构示意图;

图2为本发明所述基于消息路由方式的数据同步系统的原理结构示意图;

图3为本发明所述基于消息路由方式的数据同步方法的流程图;

图4为本发明所述基于消息路由方式的数据同步系统一实施例的原理结构示意图;

图5为本发明所述基于消息路由方式的数据同步方法的实施例的流程图;和

图6为本发明一实施例中的数据同步的原理结构示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。

如图2所示,本发明所述基于消息路由方式的数据同步系统的原理结构示意图;所述系统包括数据路由系统1、消息中间件集群2和目标系统3。其中,所述消息中间件集群2用于为不同的目标系统3建立相应的消息队列,并将队列中的目标数据推送到相应的目标系统3;所述数据路由系统1与所述消息中间件集群2相连接,用于将需要同步到目标系统3的目标数据从数据源系统转发到所述消息中间件集群2中对应的消息队列中;所述目标系统3用于接收所述消息中间件集群推送的的目标数据,并将所述目标数据写入相应的数据库。

其中,基于图2所示系统的数据同步方法的流程图如图3所示。

步骤s1,数据路由系统将目标数据经过数据路由系统从数据源系统转发到与远程目标系统对应的消息队列中;

步骤s2,所述消息队列将所述目标数据推送到对应的远程目标系统;和

步骤s3,所述远程目标系统接收所述消息队列推送的所述目标数据,并写入本地数据库中。

本发明引入消息中间件,利用消息中间件自身所具有的消息消费失败重试功能,可以在网络波动后继续从中断点传输数据,保证数据不丢失。即使出现数据库物理损坏的情况下,也能在新数据库启动后从断点续传数据。降低数据库恢复成本、及对支持人员的技术要求。并且,消息中间件集群上的多个区域的消息队列代替了进行数据库复制的机器,通过软件的方式替代了高性能物理机,从而有效降低系统部署成本。在通常使用数据库复制技术的情况时,数据源系统需要将数据写入多个区域主库中,主库需要有备机,如果是10个区域就需要有20台高性能服 务器。对于消息队列集群来说只需要10台服务器就够了,物理机器减少一半,减少了成本。

以下通过具体实施例对本发明上述的技术方案进行详细说明。如图4所示,本发明所述基于消息路由方式的数据同步系统一实施例的原理结构示意图,图5为本发明所述基于消息路由方式的数据同步方法的实施例的流程图。结合图4和图5,本实施例中的数据同步系统的具体结构如下:

所述消息中间件集群2包括消息中间件接口21、多个消息队列22和多个与其相匹配的消息队列数据接口23。其中,消息中间件接口21与所述数据路由系统1相连接,用于将数据路由系统1转发来的目标数据写入相应的消息队列;每一个消息队列对应一个目标系统,用于存放从数据源系统转发的目标数据;每一个消息队列连接一个数据接口23,通过数据接口23从对应的消息队列中取出目标数据,并推送给相应的目标系统。

所述目标系统3包括数据接口31和数据库32,所述目标系统3通过数据接口31接收所述消息中间件集群2推送的目标数据,并将其写入到所述数据库32中。

步骤s1a,在消息中间件集群2中建立与目标系统相匹配的消息队列,并为每个消息队列设置数据接口。

步骤s2a,将目标数据转发到与远程目标系统3对应的消息队列22中。

步骤s3a,配置消息队列数据接口23。也就是给接口指定需要消费的队列,不同的远程系统消费的队列不同,所以配置也不同。例如,不同的消息队列,命名不同,以便于区分。

步骤s4a,判断所述消息队列22中是否有数据需要同步,如果有,转向步骤s5a。

步骤s5a,所述消息队列22将所述目标数据通过消息队列数据接口23推送到对应的远程目标系统3。

步骤s6a,所述远程目标系统3通过数据接口31接收所述目标数据,并写入本地数据库32中或发送到其他目标系统。

如图6所示,为本发明一实施例中的数据同步的原理结构示意图。在本实施例中,需要将运单数据从交易系统同步到不同的分拣中心a和分拣中心b中。本发明中所述的数据同步系统包括消息中间件集群、数据路由器、远程分拣中心(用于进行数据接收的目标系统)、本地数据库a和数据库b。

其中,分拣中心是物流行业运作的经济活动组织,是集加工、理货、送货等多种职能于一体的物流据点。

消息中间件利用高效、可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。在本发明中,消息中间件集群负责维持与远程分拣中心对应的消息队列,接收运单数据并下发数据到远程分拣中心。比如给分拣中心a建立消息队列dmsdataqueuea,给分拣中心b建立消息队列dmsdataqueueb。

数据路由器负责接收并转发运单数据(包含运单号、目的地、始发分拣中心a、目的分拣中心b)到与远程分拣中心对应的消息队列dmsdataqueuea、dmsdataqueueb中。其中,所述运单数据是指一个订单在配送阶段需要的信息,比如运单号、配送站点、始发分拣中心、目的分拣中心、收货人、收货地址、运输类型、配送方式等信息。这些数据用于各个配送节点的状态识别与校验。包裹出库后,始发分拣中心和目的分拣中心各需要现场分拣一次,所以两个分拣中心都需要同步运单数据。从功能上来说,始发分拣中心、目的分拣中心是用来确定消费分配到哪个队列中去。而运单其余的字段的信息是分拣中心现场操作里使用的,比如里面的配送站点信息用于现场包裹分堆。

远程分拣中心,也就是目标系统,提供与消息中间件集群交互的接口,接收消息队列推送数据,并写入本地数据库中。

运单数据的同步流程具体如下:

交易系统将运单数据输出给数据路由器,数据路由器根据运单系统中的始发分拣中心、目的分拣中心的标识,调用消息中间件接口,将相应的数据分别写入队列dmsdataqueuea、dmsdataqueueb中。

在消息中间件中配置分拣中心a接口datareceiver()来消费队列 dmsdataqueuea的数据。分拣中心b接口datareceiver()来消费队列dmsdataqueueb的数据。也就是说,指定datareceiver()消费哪个队列的数据。

当消息中间件集群检测到队列dmsdataqueuea中有数据,调用分拣中心a接口datareceiver(),输出队列中运单数据。分拣中心a将数据存入本地数据库中完成数据同步。同理,当消息中间件集群检测到队列dmsdataqueueb中有数据,调用分拣中心b接口datareceiver(),输出队列中运单数据。分拣中心b将数据存入本地数据库中完成数据同步。

实物包裹到达分拣中心a,分拣中心a的扫描设备扫描包裹标签,根据本地数据库中获得的运单数据,判断得知该包裹需要路由到分拣中心b。则将包裹运往分拣中心b。

分拣中心b接收到包裹,扫描包裹标签,从数据库b中获得运单数据,根据目的地进行配送。

以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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