Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
DATA SYNCHRONIZATION METHOD AND DEVICE, TERMINAL, AND STORAGE MEDIUM
Document Type and Number:
WIPO Patent Application WO/2020/173248
Kind Code:
A1
Abstract:
Disclosed in embodiments of the present disclosure are a data synchronization method and device, a terminal and a storage medium. The data synchronization method comprises: controlling a first master database to transmit synchronization data therein to a first slave database of the first master database, and controlling the first slave database to synchronize a second master database with the received synchronization data; when a preset synchronization stop condition is met, controlling the first master database to stop transmitting synchronization data to the first slave database; and when a preset synchronization resumption condition is met, controlling the first master database to continue to transmit synchronization data to the first slave database, and controlling the first slave database to continue to synchronize the second master database with the received synchronization data.

Inventors:
SONG WEIJIE (宋维捷)
Application Number:
PCT/CN2020/072654
Publication Date:
September 03, 2020
Filing Date:
January 17, 2020
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
BEIJING BYTEDANCE NETWORK TECH CO LTD (CN)
International Classes:
G06F11/14
Foreign References:
CN109819048A2019-05-28
CN106021020A2016-10-12
CN108874593A2018-11-23
CN107391294A2017-11-24
CN108804237A2018-11-13
US20170078988A12017-03-16
Attorney, Agent or Firm:
BEYOND ATTORNEYS AT LAW (CN)
Download PDF:
Claims:
权 利 要 求 书

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

控制第一主数据库向所述第一主数据库的第一从数据库传输所述第一主数 据库中的待同步数据, 并控制所述第一从数据库将接收到的待同步数据同步至 第二主数据库中;

在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向所述第 一从数据库传输所述待同步数据;

在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向所述第 一从数据库传输所述待同步数据, 并控制所述第一从数据库继续将接收到的待 同步数据同步至所述第二主数据库中。

2、 根据权利要求 1所述的方法, 其中, 所述控制所述第一从数据库将接收 到的待同步数据同步至第二主数据库中, 包括:

根据增量数据订阅与消费服务监听日志文件, 根据所述日志文件确定所述 第一从数据库的增量数据;

将所述第一从数据库的增量数据通过分布式发布订阅消息系统消息队列同 步至所述第二主数据库中。

3、 根据权利要求 1所述的方法, 其中, 所述预设停止同步条件包括: 所述 第一从数据库与所述第一主数据库的数据同步时间达到预设时长且所述待同步 数据无数据延迟。

4、 根据权利要求 1所述的方法, 其中, 所述预设恢复同步条件包括: 所述 第二主数据库接收到的同步数据与所述第一从数据库中的已同步完成的待同步 数据一致。

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

通过第二主数据库接收第一主数据库的第一从数据库所传输的待同步数 据;

控制所述第二主数据库将所述第二主数据库中的全量数据同步至所述第二 主数据库的第二从数据库中;

其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于所述第一主数据库; 以及 其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止 同步条件的情况下, 所述第一主数据库停止向所述第一从数据库中传输所述待 同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将所述 待同步数据传输至所述第一从数据库中。 6、 根据权利要求 5所述的方法, 其中, 所述控制所述第二主数据库将所述 第二主数据库中的全量数据同步至所述第二主数据库的第二从数据库中, 包括: 通过第一数据复制中心 DRC组件抽取出所述第二主数据库中的全量数据; 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二 DRC组 件, 通过所述第二 DRC组件将所述全量数据同步至所述第二从数据库中。

7、 根据权利要求 5所述的方法, 还包括:

获取所述第二从数据库中的增量数据, 将所述第二从数据库中的增量数据 同步至所述第二主数据库中。

8、 根据权利要求 7所述的方法, 其中, 所述获取所述第二从数据库中的增 量数据, 将所述第二从数据库中的增量数据同步至所述第二主数据库中, 包括: 通过预设的第三 DRC组件抽取所述第二从数据库中的增量数据;

将抽取出的所述第二从数据库中的增量数据经第二 TPIPE组件传送给第四 DRC组件,通过所述第四 DRC组件将所述第二从数据库中的增量数据同步至所 述第二主数据库中。

9、 根据权利要求 5所述的方法, 还包括:

将所述第二从数据库中的增量数据通过增量数据订阅与消费服务同步至所 述第一主数据库中。

10、 根据权利要求 5所述的方法, 还包括:

在所述第二从数据库接收到用户的访问请求的情况下, 根据所述用户的属 性信息确定所述用户的访问权限。

11、 一种数据同步装置, 包括:

待同步数据同步模块, 设置为控制第一主数据库向所述第一主数据库的第 一从数据库传输所述第一主数据库中的待同步数据, 并控制所述第一从数据库 将接收到的待同步数据同步至第二主数据库中;

同步停止模块, 设置为在满足预设停止同步条件的情况下, 控制所述第一 主数据库停止向所述第一从数据库传输所述待同步数据;

同步恢复模块, 设置为在满足预设恢复同步条件的情况下, 控制所述第一 主数据库继续向所述第一从数据库传输所述待同步数据, 并控制所述第一从数 据库继续将接收到的待同步数据同步至所述第二主数据库中。

12、 一种数据同步装置, 包括:

待同步数据接收模块, 设置为通过第二主数据库接收第一主数据库的第一 从数据库所传输的待同步数据;

全量数据同步模块, 设置为控制所述第二主数据库将所述第二主数据库中 的全量数据同步至所述第二主数据库的第二从数据库中;

其中, 所述全量数据包括所述第一从数据库传输的待同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于所述第一主数据库; 以及 其中, 所述第一从数据库所传输的待同步数据包括以下之一: 在满足预设停止 同步条件的情况下, 所述第一主数据库停止向所述第一从数据库中传输所述待 同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将所述 待同步数据传输至所述第一从数据库中。

13、 一种电子设备, 包括:

一个或多个处理装置;

存储器, 设置为存储一个或多个程序;

所述一个或多个程序被所述一个或多个处理装置执行, 使得所述一个或多 个处理装置实现以下至少之一: 如权利要求 1-4和权利要求 5-10中任一项所述 的数据同步方法。

14、 一种计算机可读存储介质, 所述计算机可读存储介质上存储有计算机 程序, 所述计算机程序被处理器执行实现以下至少之一: 如权利要求 1-4和权利 要求 5-10中任一项所述的数据同步方法。

Description:
数据同步方法、 装置、 终端及存储介质

本申请要求在 2019年 02月 27日提交中国专利局、申请号为 201910146849.2 的中国专利申请的优先权, 该申请的全部内容通过引用结合在本申请中。 技术领域

本公开实施例涉及计算机应用技术领域, 例如涉及一种数据同步方法、 装 置、 终端及存储介质。 背景技术

MySQL是一个数据库管理系统, 也是一种关系数据库。 它是由 Oracle支持 的开源软件, 由于 MySQL体积小、 速度快、 总体拥有成本低, 尤其是开放源码 这一特点, 被广泛应用。 近年来, 异地多活成为越来越多大型互联网公司采用 的数据管理方案, 几乎也是大型应用发展到一定阶段的必然选择 。

异地多活一般是指在不同城市建立独立的数据 中心, 这些机房在日常的业 务中也需要走流量, 做业务支撑。 即在不同城市的两个机房之间的数据进行互 通, 使得用户在其中一个地点访问另一个地点的数 据。

但是, 在两个机房数据互通时, 仍然存在诸多问题。 例如, 相关技术中的 数据同步方法, 为了保证数据同步的准确性与完整性, 往往将互通的数据库停 机, 然而停机会影响到用户的正常访问, 用户体验较差。 发明内容

本公开实施例提供了一种数据同步方法、 装置、 终端及存储介质, 以解决 数据同步方法将互通的数据库停机而影响用户 体验的问题, 实现在数据库不停 机的状态下完成数据同步。

在一实施例中, 本公开实施例提供了一种数据同步方法, 该方法包括: 控制第一主数据库向所述第一主数据库的第一 从数据库传输所述第一主数 据库中的待同步数据, 并控制所述第一从数据库将接收到的待同步数 据同步至 第二主数据库中;

在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向所述第 一从数据库传输待同步数据; 在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向所述第 一从数据库传输待同步数据, 并控制所述第一从数据库继续将接收到的待同 步 数据同步至第二主数据库中。 在一实施例中, 本公开实施例提供了一种数据同步方法, 该方法包括: 通过第二主数据库接收第一主数据库的第一从 数据库所传输的待同步数 据;

控制第二主数据库将所述第二主数据库中的全 量数据同步至所述第二主数 据库的第二从数据库中;

其中, 所述全量数据包括所述第一从数据库传输的待 同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于第一主数据库; 以及其中, 所述第一从数据库所传输的待同步数据包括以 下之一: 在满足预设停止同步条 件的情况下, 所述第一主数据库停止向所述第一从数据库中 传输待同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将待同步数据传输 至所述第一从数据库中。

在一实施例中, 本公开实施例还提供了一种数据同步装置, 该装置包括: 待同步数据同步模块, 设置为控制第一主数据库向所述第一主数据库 的第 一从数据库传输所述第一主数据库中的待同步 数据, 并控制所述第一从数据库 将接收到的待同步数据同步至第二主数据库中 ;

同步停止模块, 设置为在满足预设停止同步条件的情况下, 控制所述第一 主数据库停止向所述第一从数据库传输待同步 数据;

同步恢复模块, 设置为在满足预设恢复同步条件的情况下, 控制所述第一 主数据库继续向所述第一从数据库传输待同步 数据, 并控制所述第一从数据库 继续将接收到的待同步数据同步至第二主数据 库中。

在一实施例中, 本公开实施例还提供了一种数据同步装置, 该装置包括: 待同步数据接收模块, 设置为通过第二主数据库接收第一主数据库的 第一 从数据库所传输的待同步数据;

全量数据同步模块, 设置为控制第二主数据库将所述第二主数据库 中的全 量数据同步至所述第二主数据库的第二从数据 库中;

其中, 所述全量数据包括所述第一从数据库传输的待 同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于第一主数据库; 以及其中, 所述第一从数据库所传输的待同步数据包括以 下之一: 在满足预设停止同步条 件的情况下, 所述第一主数据库停止向所述第一从数据库中 传输待同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数据库继续将待同步数据传输 至所述第一从数据库中。

在一实施例中, 本公开实施例还提供了一种电子设备, 该电子设备包括: 一个或多个处理装置;

存储器, 设置为存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理 装置执行, 使得所述一个或 多个处理装置实现如本公开中任一实施例所述 的数据同步方法。

在一实施例中, 本公开实施例还提供了一种计算机可读存储介 质, 该计算 机可读存储介质上存储有计算机程序, 所述计算机程序被处理器执行时实现如 本公开中任一实施例所述的数据同步方法。

附图说明

图 1是本公开实施例一所提供的一种数据同步方 的流程示意图; 图 2是本公开实施例二所提供的一种数据同步方 的流程示意图; 图 3是本公开实施例三所提供的一种数据同步方 的流程示意图; 图 4是本公开实施例四所提供的一种数据同步方 的流程示意图; 图 5 a是本公开实施例五所提供的一种数据互通系 的流程示意图; 图 5b是本公开实施例五所提供的一种数据单向同 的示意图;

图 5c是本公开实施例五所提供的一种数据双向同 的交互示意图; 图 5d是本公开实施例五所提供的另一种数据双向 步的交互示意图; 图 5e是本公开实施例五所提供的另一种数据双向 步的交互示意图; 图 5f是本公开实施例五所提供的另一种数据双向 步的交互示意图; 图 5g是本公开实施例五所提供的另一种数据双向 步的交互示意图; 图 5h是本公开实施例五所提供的另一种数据互通 交互示意图; 图 6是本公开实施例六所提供的一种数据同步装 的结构示意图; 图 7是本公开实施例七所提供的一种数据同步装 的结构示意图; 图 8是本公开实施例八所提供的一种电子设备的 构示意图。

具体实施方式 下面结合附图和实施例对本公开进行说明。 此处所描述的实施例仅仅用于 解释本公开, 而非对本公开的限定。 为了便于描述, 附图中仅示出了与本公开 相关的部分而非全部结构。 下述多个实施例中, 每个实施例中同时提供了可选 特征和示例, 实施例中记载的多个特征可进行组合, 形成多个可选方案, 不应 将每个编号的实施例仅视为一个技术方案。

实施例一

图 1 为本公开实施例一所提供的一种数据同步方法 的流程图, 本实施例适 用于两个独立数据库进行数据互通的情况, 可用于实现异地多活, 该方法可以 由数据同步装置来执行, 该数据同步装置可以配置于终端或服务器中用 于实现 本公开实施例的方法。 其中, 两个数据库是不是异地可以根据两个数据库之 间 的往返时延 (Round-Trip Time, RTT)确定。 即, 根据从发送端发送数据开始, 到 发送端收到来自接收端的确认, 总共经历的时延, 一般接收端收到数据后便立 即发送确认。

如图 1所示, 本实施例的方法可包括: S110至 S130。

S 110、 控制第一主数据库向所述第一主数据库的第一 从数据库传输所述第 一主数据库中的待同步数据, 并控制所述第一从数据库将接收到的待同步数 据 同步至第二主数据库中。

其中, 所述待同步数据包括所述第一主数据库的历史 数据和所述第一主数 据库的增量数据。 在一实施例中, 历史数据和第一主数据库的增量数据可以根 据实际需求进行划分。 比如, 历史数据可以是所述第一主数据库中当前时刻 下 已存储的数据; 第一主数据库的增量数据可以是在所述当前时 刻以后写入的数 据。 其中, 所述当前时刻可以是第一主数据库实时传输待 同步数据的时刻。

在一实施例中, 控制第一主数据库向所述第一主数据库的第一 从数据库传 输所述第一主数据库中的待同步数据, 可以包括: 控制第一主数据库向所述第 一主数据库的第一从数据库传输所述第一主数 据库中的历史数据; 和 /或控制第 一主数据库向所述第一主数据库的第一从数据 库传输所述第一主数据库中的增 量数据。 进而, 控制所述第一从数据库将接收到的待同步数据 同步至第二主数 据库中, 能够初步实现第一主数据库与第二主数据库的 数据同步。

作为本公开实施例一可选实施方式, 所述将所述第一从数据库的第二待同 步数据同步至所述第二主数据库中, 可包括: 根据通过增量数据订阅与消费服 务 canal监听到的日志文件 Binlog确定所述第一从数据库的增量数据,将所 述增 量数据同步至所述第二主数据库中。 在一实施例中, 根据增量数据订阅与消费 服务监听日志文件, 根据所述日志文件确定所述第一从数据库的增 量数据。 在 一实施例中, 将所述增量数据同步至所述第二主数据库中还 可以包括: 将所述 第一从数据库的增量数据通过分布式发布订阅 消息系统 kafka 消息队列同步至 所述第二主数据库中。

示例性地, 第一主数据库和第二主数据库可以为关系型数 据库, 如第一主 数据库和第二主数据库均为 MySQl数据库。

在一实施例中, 所述第一主数据库和所述第一从数据库之间符 合主从协议。

S120、 在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向 所述第一从数据库传输待同步数据。

示例性地, 所述预设停止同步条件可包括: 所述第一从数据库与所述第一 主数据库的数据同步时间达到预设时长; 或者, 所述第一从数据库与所述第一 主数据库的所述待同步数据无数据延迟; 或者所述第一从数据库与所述第一主 数据库的数据同步时间达到预设时长且所述待 同步数据无数据延迟。 其中, 所 述待同步数据无数据延迟是第一主数据库与第 一从数据库之间的数据无数据延 迟, 即, 保证第一从数据库接收到了第一主数据库当前 传输时长内所有的待同 步数据。 换言之, 第一主数据库中当前待同步的数据都已经实时 传输到第一从 数据库中了, 没有数据延迟的情况。

其中, 第一从数据库与第一主数据库的数据同步时间 可以是指第一主数据 库向第一从数据库传输第一主数据库中的待同 步数据的时间。

在本公开实施例中, 控制所述第一主数据库停止向所述第一从数据 库传输 待同步数据, 即将第一从数据库的数据以快照 (snapshot)的方式传输到第二主数 据库中, 不仅能够达到相关技术中将两个数据库停机之 后做数据互通的效果, 保证数据传输的准确性, 还能够解决影响用户访问的问题。

S130、 在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向 所述第一从数据库传输待同步数据, 并控制所述第一从数据库继续将接收到的 待同步数据同步至第二主数据库中。

示例性地, 所述预设恢复同步条件包括所述第二主数据库 接收到的同步数 据与所述第一从数据库中的所述待同步数据一 致。 在一实施例中, 所述预设恢 复同步条件包括: 所述第二主数据库接收到的同步数据与所述第 一从数据库中 的已同步完成的待同步数据一致。

在本公开实施例中, 控制所述第一主数据库继续向所述第一从数据 库传输 待同步数据, 并控制所述第一从数据库继续将接收到的待同 步数据同步至第二 主数据库中, 通过断点续传的方式, 将所述第一主数据库未同步完的待同步数 据全部同步到第二主数据库中。 在一实施例中, 在将所述第一主数据库待同步数据全部同步到 第二主数据 库的过程中, 可能存在一次、 两次或两次以上满足预设停止同步条件的情况 , 相应地, 也可能会存在一次、 两次或两次以上满足预设恢复同步条件的情况 , 可以将根据实际情况确定, 在此并不做限定。

本公开实施例的技术方案, 通过第一主数据库的第一从数据库向第二主数 据库传输所述第一主数据库中的待同步数据, 能够保证数据更加顺畅快速地进 行传输, 例如适用于异地多活的场景; 而且当满足预设停止同步条件时, 控制 停止第一主数据库与第一从数据库的数据传输 , 此时, 第一从数据库中接收到 的待同步数据为静态数据,相当于第一主数据 库的快照 snapshot, 能够将第一从 数据库的全量数据全部导入第二主数据库中; 进而, 当满足预设恢复同步条件 时, 恢复所述第一主数据库与所述第一从数据库的 数据传输, 以保证第一主数 据库的待同步数据完全同步到第二主数据库中 , 能够通过断点续传的方式, 解 决数据同步方法往往需要将互通的数据库停机 而影响用户体验的问题, 在数据 库不停机的状态下完成数据同步。

实施例二

图 2 为本公开实施例二所提供的一种数据同步方法 的流程示意图, 本实施 例以上述实施例中多个可选方案为基础。 在本实施例中, 可选地, 所述将所述 第一从数据库的第二待同步数据同步至所述第 二主数据库中.包括: 根据增量数 据订阅与消费服务 canal监听日志文件 Binlog, 根据日志文件确定所述第一从数 据库的增量数据;将所述增量数据通过分布式 发布订阅消息系统 kafka消息队列 同步至所述第二主数据库中。

如图 2所示, 本实施例的方法可以包括: S210至 S250。

S210、 控制第一主数据库向所述第一主数据库的第一 从数据库传输所述第 一主数据库中的待同步数据。

S220、 根据通过增量数据订阅与消费服务 canal监听到的日志文件 Binlog 确定所述第一从数据库的增量数据。

在一实施例中, 根据增量数据订阅与消费服务监听日志文件, 根据所述曰 志文件确定所述第一从数据库的增量数据。

其中, 日志文件 Binlog是二进制日志, 符合第一主数据库与第一从数据库 之间的主从协议, 用于记录数据信息以及数据操作, 能够保证数据不丟失。 增 量数据订阅与消费服务 canal指的是 canal server, 能够读取关系型数据库的日志 文件 Binlog, 对该日志文件 Binlog解析则可以确定所述第一从数据库的增量 数 据。 S230、将所述增量数据通过分布式发布订阅消 系统 kafka消息队列同步至 所述第二主数据库中, 并控制所述第一从数据库将接收到的待同步数 据同步至 第二主数据库中。

其中, kafka消息队列可以捕获第一从数据库的待同步 据中的增量数据和 数据操作, 而且 kafka消息队列还具有时间粒度消息回溯特性, 能够进行消息回 溯。 在第一从数据库向第二主数据库的数据同步出 现问题时, 还可以通过 kafka 消息队列进行消息回溯, 为数据库数据维护提供了便捷, 将所述增量数据通过 分布式发布订阅消息系统 kafka消息队列同步至所述第二主数据库中,能 充分 保证数据同步的准确性与安全性。

S240、 在满足预设停止同步条件的情况下, 控制所述第一主数据库停止向 所述第一从数据库传输待同步数据。

S250、 在满足预设恢复同步条件的情况下, 控制所述第一主数据库继续向 所述第一从数据库传输待同步数据, 并控制所述第一从数据库继续将接收到的 待同步数据同步至第二主数据库中。

本实施例的技术方案,通过 canal监听到的日志文件 Binlog确定第一从数据 库的增量数据, 支持断点后的准确续传, 进而将所述增量数据通过分布式发布 订阅消息系统 kafka消息队列同步至所述第二主数据库中,能 充分保证数据同 步的准确性与安全性。

实施例三

图 3 为本公开实施例三所提供的一种数据同步方法 的流程示意图, 本实施 例适用于两个独立数据库之间的数据互通, 可用于实现异地多活, 该方法可以 由数据同步装置来执行, 所述装置可以配置在终端或服务器中用于执行 本实施 例的方法。

如图 3所示, 本实施例的方法可包括: S310至 S320。

S310、 通过第二主数据库接收第一主数据库的第一从 数据库所传输的待同 步数据。

其中, 所述待同步数据来源于第一主数据库, 如前所述。 其中, 所述待同 步数据包括所述第一主数据库的历史数据和所 述第一主数据库的增量数据。 在 一实施例中, 历史数据和第一主数据库的增量数据可以根据 实际需求进行划分。 比如, 历史数据可以是所述第一主数据库中当前时刻 下已存储的数据; 第一主 数据库的增量数据可以是在所述当前时刻以后 写入的数据。 其中, 所述当前时 刻可以是第一主数据库实时传输待同步数据的 时刻。

在满足预设停止同步条件的情况下, 所述第一主数据库停止向所述第一从 数据库中传输待同步数据; 在满足预设恢复同步条件的情况下, 所述第一主数 据库继续将待同步数据传输至所述第一从数据 库中。

S320、 控制第二主数据库将所述第二主数据库中的全 量数据同步至所述第 二主数据库的第二从数据库中。

由于第二主数据库接收到了第一主数据库的待 同步数据, 所述全量数据可 包括所述第一从数据库传输的待同步数据和所 述第二主数据库中的本端写入数 据。

可选地, 控制所述第二主数据库将所述第二主数据库中 的全量数据同步至 所述第二主数据库的第二从数据库中, 包括: 控制第二主数据库通过数据复制 中心 DRC组件将所述第二主数据库中的全量数据同步 至所述第二主数据库的第 二从数据库中。 在一实施例中, 还可以包括: 控制第二主数据库通过数据复制 中心 DRC组件以数据管道 pipe方式将所述第二主数据库中的全量数据同 至所 述第二主数据库的第二从数据库中。示例性地 ,可以通过第一数据复制中心 DRC 组件抽取出所述第二主数据库中的全量数据; 将抽取出的所述全量数据经第一 数据管道 TPIPE组件传送给第二数据复制中心 DRC组件,通过第二数据复制中 心 DRC组件将所述全量数据同步至所述第二从数据 库中。

在一实施例中, 在控制第二主数据库将所述第二主数据库中的 全量数据同 步至所述第二主数据库的第二从数据库中之前 , 包括: 建立所述第二主数据库 的第二从数据库。 在一实施例中, 该第二从数据库旨在替代第一主数据库的数 据访问, 同时提供第一主数据库和第二主数据库中的数 据, 实现第一主数据库 和第二主数据库这两个数据库的数据互通。 通过控制第二主数据库将全量数据 同步至所述第二主数据库的第二从数据库中, 则第二从数据库中既包括所述第 一主数据库传输的待同步数据和所述第二主数 据库中的本端写入数据, 同时能 够支撑第一主数据本地端用户对第一主数据库 的数据以及第二主数据库的数据 进行访问, 实现了数据互通。

本实施例的技术方案, 通过第二主数据库接收第一主数据库的待同步 数据, 使第二主数据库包括所述第一从数据库传输的 待同步数据和所述第二主数据库 中的本端写入数据, 能够支持第二主数据库本地端的用户对第一主 数据库和第 二主数据库的数据进行访问, 实现了单向数据同步, 进而, 将所述第二主数据 库中的全量数据同步至所述第二主数据库的第 二从数据库中, 使得第二从数据 库中也包括所述第一从数据库传输的待同步数 据和所述第二主数据库中的本端 写入数据, 能够支持第一主数据库本地端的用户对第一主 数据库和第二主数据 库的数据进行访问, 实现了双向数据互通。

实施例四 图 4 为本公开实施例四所提供的一种数据同步方法 的流程示意图, 本实施 例以上述实施例中多个可选方案为基础。 在本实施例中, 可选地, 控制所述第 二主数据库将所述第二主数据库中的全量数据 同步至所述第二主数据库的第二 从数据库中, 包括: 通过第一数据复制中心 DRC组件抽取出所述第二主数据库 中的全量数据; 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第 二数据复制中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据 同步至所述第二从数据库中。

在上述多个技术方案的基础上, 本公开实施例的数据同步方法还可以包括: 获取所述第二从数据库中的增量数据, 将所述第二从数据库中的增量数据同步 至第二主数据库中。

本公开实施例的数据同步方法还可以包括: 将所述第二从数据库中的增量 数据通过增量数据订阅与消费服务 canal同步至所述第一主数据库中。

如图 4所示, 本实施例的技术方案可包括:

S410、 通过第二主数据库接收第一主数据库的第一从 数据库所传输的待同 步数据。

S420、通过第一数据复制中心 DRC组件抽取出所述第二主数据库中的全量 数据。

其中, 第一数据复制中心 ( Data Replication Center, DRC )支持对数据的双 写操作, 用于提供数据同步和数据分发的实时数据流服 务, 能够保证数据不丟 失的同时, 还能够保证在第二主数据库和第二从数据库同 时写同一条数据时, 解决数据冲突的问题, 保持第二主数据库和第二从数据库两端的数据 一致性。 第一数据复制中心 DRC组件还能够伪装成第二主数据库的从数据库 , 监听第二 主数据库的 Binlog, 进而从所述第二主数据库中抽取出所述第二主 数据库的全 量数据。

S430、 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二数 据复制中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据同步 至所述第二从数据库中。

示例性地,第一数据管道 TPIPE组件可以实现 kafka的协议。在本公开实施 例中, 所述第一数据管道 TPIPE组件中可以不包括与消费相关的动能, 即, 可 以不包括消费能力。 所述第一数据管道 TPIPE组件可以包括数据传输能力, 用 于有序传输数据的消息队列, 适用于多机房数据同步的情况, 能够保证数据同 步的过程中不丟失数据。

在本公开实施例中, 所述第一数据管道 TPIPE组件可用于有序传输所述全 量数据。 在一实施例中, 在所述第二主数据库通过所述第一数据管道 TPIPE组 件向所述第二主数据库的第二从数据库传输所 述全量数据之前, 包括: 建立所 述第二主数据库的第二从数据库。 在一实施例中, 第二从数据库旨在替代第一 主数据库接收数据访问, 同时提供第一主数据库和第二主数据库中的数 据, 实 现第一主数据库和第二主数据库这两个数据库 的数据互通。

S440、 获取所述第二从数据库中的增量数据, 将所述第二从数据库中的增 量数据同步至第二主数据库中。

作为本公开实施例一个可选地实施方式, 所述获取所述第二从数据库中的 增量数据, 将所述增量数据同步至第二主数据库中, 可包括: 控制第二主数据 库通过数据复制中心 DRC组件将所述第二从数据库中的增量数据同步 至所述第 二主数据库中。 在一实施例中, 还可以包括: 控制第二主数据库通过数据复制 中心 DRC组件以数据管道 pipe方式将所述第二从数据库中的增量数据同 至所 述第二主数据库中。

示例性地, 通过预设的第三数据复制中心 DRC组件抽取所述第二从数据库 中的增量数据; 将抽取出的所述增量数据经第二数据管道 TPIPE组件传送给第 四数据复制中心 DRC组件, 通过第四数据复制中心 DRC组件将所述增量数据 同步至所述第二主数据库中。

其中, 通过第三数据复制中心 DRC组件抽取所述第二从数据库中的增量数 据, 包括: 通过第三数据复制中心 DRC组件接收所述第二从数据库的日志文件 Binlog, 并从所述日志文件 Binlog中抽取出所述第二从数据库中的增量数据 。

进而, 第三数据复制中心 DRC组件还可将抽取出的所述增量数据执行批处 理 Batch操作, 对所述增量数据进行打包后传输给第二数据管 道 TPIPE组件, 以提高数据同步的效率。

S450、 将所述第二从数据库中的增量数据通过增量数 据订阅与消费服务 canal同步至所述第一主数据库中。

在一实施例中, 所述第二从数据库中的增量数据包括第二从数 据库本地端 写入的尚未同步的数据。类似地,可以通过 canal伪装第二从数据库的从数据库, 使得第二从数据库的增量数据可以通过 canal同步至所述第一主数据库中。

本实施例的技术方案, 不仅能够实现数据的双向互通, 还能够将本地端的 数据由第二从数据库中同步回第一主数据库, 不仅可以支持访问第一主数据库 用户对第一主数据库本地端的全量数据的访问 , 还能够为第一主数据库本地端 的数据做备份, 而且, 本实施例的技术方案, 第二主数据库与第二从数据库之 间的数据传输方式, 能够实现数据库的防回环操作, 保持数据互通的两个数据 库之间的数据一致性。

在上述多个技术方案的技术上, 为了真正实现用户对数据切换无感知, 而 且完全不影响用户的正常使用, 本公开实施例的数据同步方法还可包括: 当所 述第二从数据库接收到用户的访问请求时, 根据所述用户的属性信息确定所述 用户的访问权限。 其中, 用户的属性信息可以包括用户的姓名、 性别、 年龄、 职位、 身份证号以及登录账户信息等等。

示例性地, 根据所述用户的属性信息确定所述用户的访问 权限可以包括: 根据用户的属性信息预先建立用户白名单, 如果与所述访问请求对应的用户的 待匹配信息与所述用户白名单中的信息匹配, 则允许所述用户访问所述第二从 数据库。 其中, 白名单用户可以是具有对数据库进行管理或查 看权限的用户, 如数据库测试人员、 数据库维护人员等。

为了保证普通用户的正常访问, 在一实施例中, 如果与所述访问请求对应 的用户的待匹配信息与所述用户白名单中的信 息匹配, 可以将所述用户作为普 通用户, 则将所述访问请求切换为对第一主数据库的访 问请求。 这样设置的好 处在于, 能够保证在数据库同步的过程中, 工作人员访问新数据库, 普通用户 访问老数据库。 这样即使数据同步的过程中需要对数据进行维 护, 保证测试过 程用户无感知, 不对线上产生影响, 也不会影响用户的访问, 提升用户体验。

在一实施例中, 当所述第二从数据库满足接收所有用户访问的 条件时, 可 以将所有用户的访问请求切换至第二从数据库 , 以使访问第一主数据库的用户 能够同时访问到第一主数据库和第二主数据库 的数据, 以实现数据实时互通。

实施例五

图 5a为本公开实施例还提供的一种数据互通系统 该数据互通系统包括: 第一主数据库 510、 第二主数据库 520、 第一主数据库 510的第一从数据库 530 和所述第二主数据库 520的第二从数据库 540。 其中, 第一主数据库 510向第一 主数据库 510的第一从数据库 530传输第一主数据库 510中的待同步数据, 第 一从数据库 530将接收到的待同步数据同步至第二主数据库 520 中, 第二主数 据库 520接收第一主数据库 510的第一从数据库 530所传输的待同步数据; 当 满足预设停止同步条件时, 第一主数据库 510停止向第一从数据库 530传输待 同步数据; 当满足预设恢复同步条件时, 第一主数据库 510 继续向第一从数据 库 530传输待同步数据, 第一从数据库 530继续将接收到的待同步数据同步至 第二主数据库 520中; 第二主数据库 520将第二主数据库 520中的全量数据同 步至第二主数据库 520的第二从数据库 540中。

作为本公开实施例的一个数据互通系统的可选 实例, 以第一主数据库、 第 二主数据库和所述第二主数据库的从数据库为 MySQL数据库时的数据互通为 例, 如图 5b-5f所示, 实现方式如下:

如图 5b所述, 第一主数据库 T Master和第二主数据库 M Master为两个数 据相对独立的数据库。

参见图 5c , 在第二主数据库 M Master的本地端建立第一主数据库 T Master 的第一从数据库 T Slave , 第一主数据库 T Master向第一主数据库 T Master的第 一从数据库 T Slave传输第一主数据库 T Master中的待同步数据,第一从数据库 T Slave将接收到的待同步数据同步至第二主数据 M Master中, 当满足预设停 止同步条件时,第一主数据库 T Master停止向第一从数据库 T Slave传输待同步 数据, 当满足预设恢复同步条件时, 第一主数据库 T Master继续向第一从数据 库 T Slave传输待同步数据, 即, 将第一从数据库 T Slave当做 snapshot,将第一 主数据库 T Master的全量数据导入第二主数据库 M Master中。

参见图 5d, 增量数据订阅与消费服务 canal , 通过监听到的日志文件 B inlog 确定出第一从数据库 T Slave的增量数据, 将所述增量数据通过分布式发布订阅 消息系统 kafka消息队列同步至所述第二主数据库 M Master中。

参见图 5e , 在第一主数据库 T Master的本地端建立第二主数据库 M Master 的第二从数据库 M Slave , 第二主数据库 M Master向第二主数据库 M Master的 第二从数据库 M Slave传输第二主数据库 M Master中的全量数据, 以实现双向 数据同步。

参见图 5f , 第一数据复制中心 DRC组件抽取出第二主数据库 M Master中 的全量数据, 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二 数据复制中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据同 步至第二从数据库 M Slave中, 此时, 第一主数据库 T Master的普通用户均访 问第一主数据库 T Master, 第二从数据库 M Slave中暂无写入的数据, 全部数据 均来源于第二主数据库 M Master, 因此, 虚线部分并无数据传输。

参见图 5g,由于第二主数据库 M Master中包括第一主数据库 T Master传输 的待同步数据, 此时将第二主数据库 M Master用第二主数据库 M+T Master来 表示, 将第二主数据库 M+T Master的第二从数据库 M Slave用第二从数据库 M+T Master来表示, 考虑到同步过程中的数据安全问题以及用户体 验问题, 可 以将用户分流, 根据用户的属性信息预先建立用户白名单; 进而, 当接收到用 户的访问请求时, 属于所述用户白名单的用户访问第二从数据库 M+T Master, 其中, 白名单用户可以是具有对数据库进行管理或查 看权限的用户, 如数据库 测试人员以及数据库维护人员等, 不属于白名单的普通用户暂时访问第一主数 据库 T Master的本地端数据, 另外, 所述第二从数据库 M+T Master中的增量数 据还可以通过增量数据订阅与消费服务 canal同步至第一主数据库 T Master中; 参见图 5h, 当所述第二从数据库满足接收所有用户访问的 条件时, 可以将 所有用户的访问请求切换至第二从数据库 M+T Master, 以使访问第一主数据库 T Master 的用户能够同时访问到第一主数据库 T Master和第二主数据库 M+T Master的数据, 以实现数据实时互通, 此时, 需要将第二从数据库 M+T Master 中的增量数据同步至第二主数据库 M+T Master中。 在一实施例中, 第三数据复 制中心 DRC组件抽取所述第二从数据库 M+T Master中的增量数据, 将抽取出 的所述增量数据经第二数据管道 TPIPE组件传送给第四数据复制中心 DRC组 件, 通过第四数据复制中心 DRC组件将所述增量数据同步至所述第二主数据 库 M+T Master中。

本实施例的技术方案, 能够在不停机的状态下实现数据互通, 而且对多个 数据库中的历史数据和增量数据均不造成影响 , 还能够保证测试过程不对线上 产生影响, 实现了无感知的数据互通, 极大地提升了用户体验。

实施例六

图 6 为本公开实施例六所提供的一种数据同步装置 的结构示意图, 如图 6 所示, 本实施例的数据同步装置包括: 待同步数据同步模块 610、 同步停止模块 620和同步恢复模块 630。

其中, 待同步数据同步模块 610 , 设置为控制第一主数据库向所述第一主数 据库的第一从数据库传输所述第一主数据库中 的待同步数据, 并控制所述第一 从数据库将接收到的待同步数据同步至第二主 数据库中; 同步停止模块 620 , 设 置为当满足预设停止同步条件时, 控制所述第一主数据库停止向所述第一从数 据库传输待同步数据; 同步恢复模块 630 , 设置为当满足预设恢复同步条件时, 控制所述第一主数据库继续向所述第一从数据 库传输待同步数据, 并控制所述 第一从数据库继续将接收到的待同步数据同步 至第二主数据库中。

在上述技术方案的基础上, 所述待同步数据同步模块可设置为:

根据通过增量数据订阅与消费服务 canal监听到的日志文件 Binlog确定所述 第一从数据库的增量数据;

在一实施例中, 根据增量数据订阅与消费服务监听日志文件, 根据所述曰 志文件确定所述第一从数据库的增量数据。

将所述增量数据通过分布式发布订阅消息系统 kafka 消息队列同步至所述 第二主数据库中。

在上述多个技术方案的基础上, 所述预设停止同步条件可包括: 所述第一 从数据库与所述第一主数据库的数据同步时间 达到预设时长且所述待同步数据 无数据延迟。

在上述多个技术方案的基础上, 所述预设恢复同步条件可包括: 所述第二 主数据库接收到的同步数据与所述第一从数据 库中的所述待同步数据一致。

在一实施例中, 所述预设恢复同步条件包括: 所述第二主数据库接收到的 同步数据与所述第一从数据库中的已同步完成 的待同步数据一致。

上述数据同步装置可执行本公开任意实施例所 提供的数据同步方法, 具备 执行方法相应的功能模块和有益效果。

实施例七

图 7 为本公开实施例七所提供的一种数据同步装置 的结构示意图, 如图 7 所示, 本实施例的数据同步装置包括: 待同步数据接收模块 710和全量数据同 步模块 720。 其中, 待同步数据接收模块 710, 设置为通过第二主数据库接收第 一主数据库的第一从数据库所传输的待同步数 据; 全量数据同步模块 720,设置 为控制第二主数据库将所述第二主数据库中的 全量数据同步至所述第二主数据 库的第二从数据库中。

其中, 所述全量数据包括所述第一从数据库传输的待 同步数据和所述第二 主数据库中的本端写入数据; 所述待同步数据来源于第一主数据库; 以及其中, 所述第一从数据库所传输的待同步数据包括以 下之一: 在满足预设停止同步条 件时, 所述第一主数据库停止向所述第一从数据库中 传输待同步数据; 在满足 预设恢复同步条件时, 所述第一主数据库继续将待同步数据传输至所 述第一从 数据库中。

本实施例的技术方案, 通过第二主数据库接收第一主数据库的待同步 数据, 使第二主数据库包括所述第一从数据库传输的 待同步数据和所述第二主数据库 中的本端写入数据, 能够支持第二主数据库本地端的用户对第一主 数据库和第 二主数据库的数据进行访问, 实现了单向数据同步, 进而, 将所述第二主数据 库中的全量数据同步至所述第二主数据库的第 二从数据库中, 使得第二从数据 库中也包括所述第一从数据库传输的待同步数 据和所述第二主数据库中的本端 写入数据, 能够支持第一主数据库本地端的用户对第一主 数据库和第二主数据 库的数据进行访问, 实现了双向数据互通。

在上述多个技术方案的基础上, 所述全量数据同步模块可设置为: 通过第一数据复制中心 DRC组件抽取出所述第二主数据库中的全量数据 ; 将抽取出的所述全量数据经第一数据管道 TPIPE组件传送给第二数据复制 中心 DRC组件, 通过第二数据复制中心 DRC组件将所述全量数据同步至所述 第二从数据库中。 在上述多个技术方案的基础上, 所述数据同步装置还可以包括: 第一增量数据同步模块, 设置为获取所述第二从数据库中的增量数据, 将 所述第二从数据库中的增量数据同步至第二主 数据库中。 在上述多个技术方案的基础上, 所述第一增量数据同步模块是设置为: 通过预设的第三数据复制中心 DRC组件抽取所述第二从数据库中的增量数 据;

将抽取出的所述增量数据经第二数据管道 TPIPE组件传送给第四数据复制 中心 DRC组件, 再通过第四数据复制中心 DRC组件将所述增量数据同步至所 述第二主数据库中。

在上述多个技术方案的基础上, 所述数据同步装置还可以包括:

第二增量数据同步模块, 设置为将所述第二从数据库中的增量数据通过 增 量数据订阅与消费服务 canal同步至所述第一主数据库中。

在上述多个技术方案的基础上, 所述数据同步装置还可以包括:

权限确定模块, 设置为当所述第二从数据库接收到用户的访问 请求时, 根 据所述用户的属性信息确定所述用户的访问权 限。

上述数据同步装置可执行本公开任意实施例所 提供的数据同步方法, 具备 执行方法相应的功能模块和有益效果。

实施例八

下面参考图 8 , 图 8示出了适于用来实现本公开实施例的电子设 (例如终 端设备或服务器 ) 800的结构示意图。 本公开实施例中的终端设备可以包括诸如 移动电话、 笔记本电脑、 数字广播接收器、 个人数字助理 ( Personal Digital Assistant, PDA ) 、 平板电脑 ( Portable Android Device, PAD ) 、 便携式多媒体 播放器 ( Personal Multimedia Player, PMP ) 、 车载终端 (例如车载导航终端) 等等的移动终端以及诸如数字 ( television, TV ) 、 台式计算机等等的固定终端。 图 8 示出的电子设备仅仅是一个示例, 不应对本公开实施例的功能和使用范围 带来任何限制。

如图 8所示, 电子设备 800可以包括处理装置 (例如中央处理器、 图形处 理器等) 801 , 处理装置 801可以根据存储在只读存储器 ( Read-only Memory, ROM )802中的程序或者从存储装置 808加载到随机访问存储器 ( Random Access Memory, RAM ) 803中的程序而执行多种适当的动作和处理。 在 RAM 803中, 还存储有电子设备 800操作所需的多种程序和数据。 处理装置 801、 ROM 802 以及 RAM 803通过总线 804彼此相连。 输入 /输出 ( Input/Output, I/O )接口 805 也连接至总线 804。

通常, 以下装置可以连接至 I/O接口 805 : 包括例如触摸屏、 触摸板、键盘、 鼠标、 摄像头、 麦克风、 加速度计、 陀螺仪等的输入装置 806; 包括例如液晶显 示器 ( Liquid Crystal Display, LCD ) 、 扬声器、 振动器等的输出装置 807; 包括 例如磁带、 硬盘等的存储装置 808; 以及通信装置 809。 通信装置 809可以允许 电子设备 800与其他设备进行无线或有线通信以交换数据 。 虽然图 8示出了具 有多种装置的电子设备 800 , 但是, 并不要求实施或具备所有示出的装置。 可以 替代地实施或具备更多或更少的装置。

根据本公开的实施例, 上文参考流程图描述的过程可以被实现为计算 机软 件程序。 例如, 本公开的实施例包括一种计算机程序产品, 计算机程序产品包 括承载在计算机可读介质上的计算机程序, 该计算机程序包含用于执行流程图 所示的方法的程序代码。 在这样的实施例中, 该计算机程序可以通过通信装置 809从网络上被下载和安装, 或者从存储装置 808被安装, 或者从 ROM 802被 安装。 在该计算机程序被处理装置 801 执行时, 执行本公开实施例的方法中限 定的上述功能。

实施例八

在一实施例中, 本公开上述的计算机可读介质可以是计算机可 读信号介质 或者计算机可读存储介质或者是上述两者的任 意组合。 计算机可读存储介质例 如可以是电、 磁、 光、 电磁、 红外线、 或半导体的系统、 装置或器件, 或者任 意以上的组合。 计算机可读存储介质的可以包括: 具有一个或多个导线的电连 接、便携式计算机磁盘、硬盘、 RAM、 ROM、可擦式可编程只读存储器 ( Erasable Programmable Read-Only Memory, EPROM )或闪存、 光纤、 便携式紧凑磁盘只 读存储器 ( Compact Disc Read-Only Memory, CD-ROM ) 、 光存储器件、 磁存 储器件、 或者上述的任意合适的组合。 在本公开中, 计算机可读存储介质可以 是任何包含或存储程序的有形介质, 该程序可以被指令执行系统、 装置或者器 件使用或者与其结合使用。 而在本公开中, 计算机可读信号介质可以包括在基 带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。 这种传播的数据信号可以采用多种形式, 包括电磁信号、 光信号或上述的任意 合适的组合。 计算机可读信号介质还可以是计算机可读存储 介质以外的任何计 算机可读介质, 该计算机可读信号介质可以发送、 传播或者传输用于由指令执 行系统、 装置或者器件使用或者与其结合使用的程序。 计算机可读介质上包含 的程序代码可以用任何适当的介质传输, 包括: 电线、 光缆、 射频 ( Radio Frequency, RF ) 等等, 或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所 包含的; 也可以是单独存在, 而未装配入该电子设备中。

上述计算机可读介质承载有一个或者多个程序 , 当上述一个或者多个程序 被该电子设备执行时, 使得该电子设备: 控制第一主数据库向所述第一主数据 库的第一从数据库传输所述第一主数据库中的 待同步数据, 并控制所述第一从 数据库将接收到的待同步数据同步至第二主数 据库中; 当满足预设停止同步条 件时, 控制所述第一主数据库停止向所述第一从数据 库传输待同步数据; 当满 足预设恢复同步条件时, 控制所述第一主数据库继续向所述第一从数据 库传输 待同步数据, 并控制所述第一从数据库继续将接收到的待同 步数据同步至第二 主数据库中。

或者, 上述计算机可读介质承载有一个或者多个程序 , 当上述一个或者多 个程序被该电子设备执行时, 使得该电子设备: 通过第二主数据库接收第一主 数据库的第一从数据库所传输的待同步数据; 控制第二主数据库将所述第二主 数据库中的全量数据同步至所述第二主数据库 的第二从数据库中; 其中, 所述 全量数据包括所述第一从数据库传输的待同步 数据和所述第二主数据库中的本 端写入数据; 所述待同步数据来源于第一主数据库; 在满足预设停止同步条件 时, 所述第一主数据库停止向所述第一从数据库中 传输待同步数据; 在满足预 设恢复同步条件时, 所述第一主数据库继续将待同步数据传输至所 述第一从数 据库中。

可以以一种或多种程序设计语言或其组合来编 写用于执行本公开的操作的 计算机程序代码, 上述程序设计语言包括面向对象的程序设计语 言一诸如 Java、 Smalltalk、 C++, 还包括常规的过程式程序设计语言一诸如 “C” 语言或类似的 程序设计语言。 程序代码可以完全地在用户计算机上执行、 部分地在用户计算 机上执行、 作为一个独立的软件包执行、 部分在用户计算机上部分在远程计算 机上执行、 或者完全在远程计算机或服务器上执行。 在涉及远程计算机的情形 中, 远程计算机可以通过任意种类的网络 -包括局域网 (Local Area Network,

LAN LAN)或广域网 (Wide Area Network, WAN)—连接到用户计算机, 或者, 可 以连接到外部计算机 (例如利用因特网服务提供商来通过因特网连 ) 。

附图中的流程图和框图, 图示了按照本公开多种实施例的方法和计算机 程 序产品的可能实现的体系架构、 功能和操作。 在这点上, 流程图或框图中的每 个方框可以代表一个模块、 程序段、 或代码的一部分, 该模块、 程序段、 或代 码的一部分包含一个或多个用于实现规定的逻 辑功能的可执行指令。 在有些作 为替换的实现中, 方框中所标注的功能也可以以不同于附图中所 标注的顺序发 生。 例如, 两个接连地表示的方框实际上可以基本并行地 执行, 它们有时也可 以按相反的顺序执行, 这依所涉及的功能而定。 在一实施例中, 框图和 /或流程 图中的每个方框、 以及框图和 /或流程图中的方框的组合, 可以用执行规定的功 能或操作的专用的基于硬件的系统来实现, 或者可以用专用硬件与计算机指令 的组合来实现。

描述于本公开实施例中所涉及到的模块、 单元可以通过软件的方式实现, 也可以通过硬件的方式来实现。 其中, 模块、 单元的名称在一些情况下并不构 成对该模块或单元本身的限定。