一种数据同步装置、方法、网上交易系统、计算机设备和存储介质与流程

文档序号:28749501发布日期:2022-02-08 00:07阅读:62来源:国知局
一种数据同步装置、方法、网上交易系统、计算机设备和存储介质与流程

1.本发明实施例涉及计算机技术领域,尤其涉及一种数据同步装置、方法、网上交易系统、计算机设备和存储介质。


背景技术:

2.在当前互联网环境中,传统的mysql到es(elasticsearch,非关系型数据库)的数据同步,通常采用数据库队列与调度相结合的方式实现,在需要触发数据同步的地方向数据库队列插入一条数据,通过调度器定时扫描数据库队列的方式实现数据从数据库到es的同步,这种方式具有实现简单的优点,但是存在代码侵入、频繁刷库、数据同步实时性差等问题,极端情况下,数据库数据同步到es的延迟可以达到一个调度周期。
3.因此,建立一种机制,以避免代码侵入和频繁刷库,同时还能保证数据同步实时性更高,是非常迫切的需求。


技术实现要素:

4.本发明实施例提出了一种数据同步装置、方法、网上交易系统、计算机设备和存储介质,以解决客户端设备在数据通信过程中可能携带恶意程序占用大量网络资源,影响用户数据安全的问题。
5.第一方面,本发明实施例提供了一种数据同步装置,所述装置设置于网上交易系统,所述系统还包括商品模块,所述数据同步装置包含同步数据库增量程序canal、关系数据库mysql和消息队列rabbitmq服务,所述消息队列rabbitmq服务与所述商品模块可以通信,其中,所述装置包括:
6.注册模块,用于将同步数据库增量程序canal注册为所述关系数据库mysql的从服务器slave节点;
7.更新模块,用于当所述关系数据库mysql中的数据发生更新时,所述同步数据库增量程序canal接收到更新数据;
8.更新信息发送模块,用于所述同步数据库增量程序canal通过所述消息队列rabbitmq服务,将所述更新数据发送至所述商品模块。
9.第二方面,本发明实施例还提供了一种网上交易系统,所述系统包括检索模块、商品模块和第一方面所述的数据同步装置,所述检索模块与所述数据同步装置可以互相通信,所述商品模块与所述数据同步装置可以互相通信,所述检索模块和所述商品模块包括非关系型数据库,其中,
10.所述检索模块用于:
11.当接收到对商品信息的访问请求时,从所述非关系型数据库中请求待查询商品的标准化商品信息。
12.所述商品模块用于:
13.所述非关系型数据库每隔预设时间段获取商品基础信息后,组装为商品库存数据。
14.第三方面,本发明实施例还提供了一种数据同步方法,所述方法应用于第二方面所述的网上交易系统,所述方法包括:
15.将所述同步数据库增量程序canal注册为所述关系数据库mysql的从服务器slave节点;
16.当所述关系数据库mysql中的数据发生更新时,所述同步数据库增量程序canal接收到更新数据;
17.所述同步数据库增量程序canal将所述更新数据发送至所述消息队列rabbitmq服务。
18.第四方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
19.一个或多个处理器;
20.存储器,用于存储一个或多个程序,
21.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第三方面所述的数据同步方法。
22.第五方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第三方面所述的数据同步方法。
23.在本实施例中,于网上交易系统中设置数据同步装置,所述系统还包括商品模块。所述数据同步装置包含同步数据库增量程序canal、关系数据库mysql和消息队列rabbitmq服务,所述消息队列rabbitmq服务与所述商品模块可以通信。其中,通过装置中包括的注册模块,将同步数据库增量程序canal注册为所述关系数据库mysql的从服务器slave节点;当所述关系数据库mysql中的数据发生更新时,所述同步数据库增量程序canal接收到更新数据;所述同步数据库增量程序canal通过所述消息队列rabbitmq服务,将所述更新数据发送至所述商品模块。本发明不存在代码侵入,频繁刷新数据库的问题,且解决了数据库数据同步到es延迟性的问题。
附图说明
24.图1为本发明实施例一提供的一种数据同步装置的结构框图;
25.图2a为本发明实施例提供的数据同步装置应用实例示例图;
26.图2b为本发明实施例提供的数据同步装置应用实例示例图;
27.图2c为本发明实施例提供的数据同步装置应用实例示例图;
28.图3为本发明实施例二提供的一种网上交易系统的结构示意图;
29.图4为本发明实施例三提供的一种数据同步装置方法的流程图
30.图5为本发明实施例四提供的一种计算机设备的结构示意图。
具体实施方式
31.名词解释:
32.es
33.elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用elasticsearch的水平伸缩性,能使数据在生产环境变得更有价值。elasticsearch的实现原理主要分为以下几个步骤,首先用户将数据提交到elasticsearch数据库中,再通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据,当用户搜索数据时候,再根据权重将结果排名,打分,再将返回结果呈现给用户。
34.wms
35.仓库管理系统(warehouse management system)的缩写,仓库管理系统是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能,对批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统,有效控制并跟踪仓库业务的物流和成本管理全过程,实现或完善企业的仓储信息管理。该系统可以独立执行库存操作,也可与其他系统的单据和凭证等结合使用,可为企业提供更为完整企业物流管理流程和财务管理信息。
36.mysql
37.一个关系型数据库管理系统,由瑞典mysql ab公司开发,属于oracle旗下产品。mysql是最流行的关系型数据库管理系统之一,在web应用方面,mysql是最好的rdbms(relational database management system,关系数据库管理系统)应用软件之一。
38.mysql是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
39.mysql所使用的sql语言是用于访问数据库的最常用标准化语言。mysql软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择mysql作为网站数据库。
40.canal
41.主要用途是基于mysql数据库增量日志解析,提供增量数据订阅和消费。canal模拟mysql slave的交互协议,伪装自己为mysql slave,向mysql master发送dump协议
42.mysql master收到dump请求,开始推送binary log给slave(即canal),canal解析binary log对象(原始为byte流)。
43.rabbitmq
44.实现了高级消息队列协议(amqp)的开源消息代理软件(亦称面向消息的中间件)。rabbitmq服务器是用erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。
45.spu(standard product unit):
46.标准化产品单元。是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个spu。
47.sku
48.全称为stock keeping unit(库存量单位),即库存进出计量的基本单元,可以是以件,盒,托盘等为单位。sku这是对于大型连锁超市dc(配送中心)物流管理的一个必要的方法。现在已经被引申为产品统一编号的简称,每种产品均对应有唯一的sku号。单品:对一
种商品而言,当其品牌、型号、配置、等级、花色、包装容量、单位、生产日期、保质期、用途、价格、产地等属性中任一属性与其他商品存在不同时,可称为一个单品。
49.主从同步
50.是在一个交换节点设立一高精度的基准时钟,通过传输链路把此基准时钟信号送到网中各个从节点,各个从节点利用锁相环技术把本地时钟频率锁定在基准时钟频率上,从而实现网内各节点之间的时钟信号同步。
51.主从同步网一般采用星状结构或树状结构,其中大部分节点为从节点。从节点时钟跟踪基准时钟状态,可有效降低成本。因此,主从同步技术能够提高时钟系统的精确度,同时降低成本。
52.mysql binlog
53.二进制格式的日志文件,但是不能把binlog文件等同于os系统某目录下的具体文件。binlog是用来记录mysql内部对数据库的改动(只记录对数据的修改操作),主要用于数据库的主从复制以及增量恢复。
54.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
55.实施例一
56.图1为本发明实施例一提供的一种数据同步装置的结构框图,所述装置设置于网上交易系统,所述系统还包括商品模块,所述数据同步装置包含同步数据库增量程序canal、关系数据库mysql和消息队列rabbitmq服务,所述消息队列rabbitmq服务与所述商品模块可以通信,其中,上述装置具体包括:
57.注册模块101,用于将同步数据库增量程序canal注册为所述关系数据库mysql的从服务器slave节点。
58.本发明实施例中,如图2a所示的数据同步装置的实例应用图当中,数据同步装置包含mysql服务、canal服务和rabbitmq服务。
59.首先,启动canal(同步数据库增量程序)服务,并注册为mysql的salve(从服务器)节点。
60.更新模块102,用于当所述关系数据库mysql中的数据发生更新时,所述同步数据库增量程序canal接收到更新数据。
61.优选地,在本发明另一实施例中,所述更新模块102还用于:
62.当所述关系数据库mysql中的数据发生更新时,所述关系数据库mysql将数据更新信息同步到二进制数据库日志;
63.所述同步数据库增量程序canal通过获取所述二进制数据库日志得到所述数据更新信息;
64.应用程序定时从canal拉取数据,并通过mq(message queue(消息队列))分发到相关的业务队列
65.所述同步数据库增量程序canal通过所述数据更新信息接收更新数据。
66.本发明实施例中,当发现关系数据库mysql中的数据存在更新时,即mysql数据发送变动,便会通过binlog(二进制日志文件)同步给canal服务。那么同步数据库增量程序
canal服务则会根据binlog去获取更新数据。
67.更新信息发送模块103,用于所述同步数据库增量程序canal通过所述消息队列rabbitmq服务,将所述更新数据发送至所述商品模块。
68.本发明实施例中,应用程序定时从canal拉取数据,并通过mq(message queue消息队列)分发到相关的业务队列,由业务队列分发至如图2b所示的商品模块中的平台商品队列消费者。
69.在本实施例中,根据注册模块,用于将同步数据库增量程序canal注册为所述关系数据库mysql的从服务器slave节点;更新模块,用于当所述关系数据库mysql中的数据发生更新时,所述同步数据库增量程序canal接收到更新数据;更新信息发送模块,用于所述同步数据库增量程序canal通过所述消息队列rabbitmq服务,将所述更新数据发送至所述商品模块。以实现在对数据同步时,对现有代码无侵入和避免频繁刷库的情况下提高数据同步实时性的目的。
70.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
71.实施例二
72.图3为本发明实施例二提供的一种网上交易系统的结构框图,所述系统包括检索模块301、商品模块302和数据同步装置303,所述检索模块301与所述数据同步装置303可以互相通信,所述商品模块302与所述数据同步装置303可以互相通信,所述检索模块301和所述商品模块302包括非关系型数据库304,其中,
73.所述检索模块301用于:
74.当接收到对商品信息的访问请求时,从所述非关系型数据库中请求待查询商品的标准化商品信息。
75.本发明实施例中,如图2b所示,检索模块包括dc(商品)服务、es服务、tc(订单)服务和wms(仓储管理)服务,在dc(商品)服务接收到es服务发送的商品数据请求,则返回商品基础数据,再由es服务组装成基础数据。
76.所述商品模块302用于:
77.所述非关系型数据库每隔预设时间段获取商品基础信息后,组装为商品库存数据。
78.本发明实施例中,如图2b所示,es非关系型数据库会每隔预设时间段从dc服务获取商品基础数据后封装,可以有效的检测更新数据。
79.可选地,在本发明另外的实施例中,所述系统还包括客户端,所述检索模块301与所述客户端可以互相通信,所述检索模块301还用于:
80.接收所述客户端对商品列表的访问请求时,将所述访问请求发送至所述非关系型数据库;
81.所述非关系型数据库根据所述访问请求中待查询商品信息,在本地匹配成功,则获取已存储的库存数据返回给所述客户端;
82.否则,根据所述访问请求从所述数据同步装置提取待查询商品的属性信息;
83.将获取的所述属性信息组装为标准化商品信息。
84.本发明实施例中,如图2c所示的检索模块,当客户发送商品信息检索请求时,该访问请求首先发送至非关系型数据库,由非关系型数据库根据该访问请求中的待查询信息在本地进行查询对应的商品封装信息。
85.可以理解地,如果查询本地数据中存在待查询商品的封装信息,那么返回给客户端。否则说明待查询数据是更新的数据,则向数据同步装置中请求对应商品的属性信息,获取后封装为标准化商品信息。
86.其中,标准化商品信息,也叫spu(standard product unit标准化产品单元),是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性。通俗点讲,属性值、特性相同的商品就可以称为一个spu。
87.可选地,在本发明另外的实施例中,所述检索模块301还用于:
88.所述非关系型数据库每隔预设时间段向所述数据同步装置请求商品属性信息;
89.所述非关系型数据库将所述商品属性信息组装为标准化商品信息。
90.本发明实施例中,检索模块还可以通过每隔预设时间段就向数据同步装置请求商品属性信息。
91.可以理解地,这里请求的商品属性信息可以更有效地发现数据库的更新商品信息,以便及时封装保存为标准化的商品信息。
92.在实际应用中,预设间隔时间由相关技术人员根据具体使用场景进行设置,本发明实施例对此不加以限制。
93.可选地,在本发明另外的实施例中,所述商品模块还包括商品服务模块、订单服务模块和仓储管理模块,所述商品模块还用于:
94.所述非关系型数据库每隔预设时间段向所述商品服务模块获取商品基础信息;
95.所述非关系型数据库将获取的所述商品基本信息组装为商品基础数据;
96.所述非关系型数据库从所述订单服务模块获取商品销量信息;
97.所述非关系型数据库将所述商品基础数据和所述商品销量信息组装为商品销量数据;
98.所述非关系型数据库从所述仓储管理模块获取商品库存信息;
99.所述非关系型数据库将所述商品库存信息和所诉商品销量数据组装为商品库存数据。
100.本发明实施例中,如图2b所示,商品服务模块中还包括商品服务模块、订单服务模块和仓储管理模块,其中非关系型数据库es用于从商品服务模块、订单服务模块和仓储管理模块获取相关数据并进行封装,最后封装为商品库存数据进行存储。
101.可选地,在本发明另外的实施例中,所述商品模块还用于:
102.所述非关系型数据库接收所述数据同步装置中的所述同步数据库增量程序canal发送的所述更新数据;
103.所述非关系型数据库将接收到的所述更新数据组装为所述商品基础数据。
104.本发明实施例中,非关系型数据库es和数据同步装置中的消息队列rabbitmq服务可以互相通信,当关系数据库mysql中的数据发生更新时,同步数据库增量程序canal接收
到更新数据并通过所述消息队列rabbitmq服务将更新数据发送es中,es接收到更新数据后就封装为商品基础数据。
105.综上所述,在本发明实施例中,通过网上交易系统,该系统包括检索模块、商品模块和实施例一种描述的数据同步装置,所述检索模块与所述数据同步装置可以互相通信,所述商品模块与所述数据同步装置可以互相通信,所述检索模块和所述商品模块包括非关系型数据库,其中,所述检索模块用于:当接收到对商品信息的访问请求时,从所述非关系型数据库中请求待查询商品的标准化商品信息。所述商品模块用于:所述非关系型数据库每隔预设时间段获取商品基础信息后,组装为商品库存数据。实现了在购物系统中对后台代码无侵入的情况下,提高数据同步实时性的目的。
106.实施例三
107.图4为本发明实施例三提供的一种数据同步方法,所述方法应用于上述的网上交易系统,所述方法具体包括:
108.步骤401,将所述同步数据库增量程序canal注册为所述关系数据库mysql的从服务器slave节点;
109.此步骤与实施例一中注册模块101描述相同,在此不再详述。
110.步骤402,当所述关系数据库mysql中的数据发生更新时,所述同步数据库增量程序canal接收到更新数据;
111.此步骤与实施例一中更新模块102描述相同,在此不再详述。
112.步骤403,所述同步数据库增量程序canal将所述更新数据发送至所述消息队列rabbitmq服务。
113.此步骤与实施例一中更新信息发送模块103描述相同,在此不再详述。
114.本发明实施例所提供的数据保护装置可执行本发明任意实施例所提供的数据同步方法,具备执行方法相应的功能模块和有益效果。
115.实施例四
116.图5为本发明实施例四提供的一种计算机设备的结构示意图。图5示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图5显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
117.如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
118.总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
119.计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
120.系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不
可移动的、非易失性磁介质(图4未显示,通常称为“硬盘驱动器”)。尽管图4中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd-rom,dvd-rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
121.具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
122.计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
123.处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的数据同步方法。
124.实施例五
125.本发明实施例五还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述数据同步方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
126.其中,计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
127.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1