[发明专利]一种消费端数据流复制方法及系统有效
申请号: | 201510072163.5 | 申请日: | 2015-02-11 |
公开(公告)号: | CN104679841B | 公开(公告)日: | 2018-06-08 |
发明(设计)人: | 张帅;都海峰 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06Q30/00 |
代理公司: | 北京邦信阳专利商标代理有限公司 11012 | 代理人: | 金玺 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 事件日志 持久化 分布式消息 数据库语句 复制 回溯 语句 数据流复制 源数据库 拉取 解析 目标数据库 功能实现 异常恢复 数据库 转换 灵活 冲突 健康 | ||
本发明公开一种消费端数据流复制方法及系统,方法包括:复制步骤,包括:从分布式消息系统中拉取源数据库的事件日志,将每个所述源事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;回溯步骤,包括:当消费端异常出现时,回溯健康点之前的位置,重新从分布式消息系统中拉取源数据库的事件日志,将所述事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;持久化步骤,包括:在所述消费端对应的目标数据库中依次执行每个所述复制语句。本发明当发生异常时利用分布式消息系统的回溯功能实现数据库的异常恢复,使用数据库语句的灵活转换进行持久化,适应各种冲突情况。
技术领域
本发明涉及数据库相关技术领域,特别是一种消费端数据流复制方法及系统。
背景技术
在电子商务发展日趋规模化的今天,大的电商公司积累了大量的商家用户,同时,有许多独立软件开发商(ISV)为这些商家生产软件,这些ISV需要电商公司的数据为商家提供服务,于是电商公司将数据开放给ISV使用变成了必然的趋势。
数据开放有许多形式:应用程序接口调用(API)、数据仓库解决方案(历史数据分析)、商家用户数据库服务等,其中数据库服务是指直接将使用ISV软件的商家数据推送到数据库。这种方式的服务具有实时、准确、稳定等特点。
数据库的流复制是指,通过收集、分析、存储数据库运行日志得到源数据库的变更事件,提供给消费端(目标端),消费端将运行日志或事件还原,以达到复制的目的。这种方式具有配置灵活,支持异构数据库和对网络要求低等特点,在数据库复制和容灾等场景下应用广泛应用,尤其适合数据库的实时增量同步的场景。
1.2.1现有技术的技术方案:
目前比较成熟的复制产品有Mysql的Replication、Alibaba的Canal&Otter等。
Mysql Replication是基于二进制日志文件的(binlog)主从复制,二进制日志文件记录了主数据库的数据变化。有三个线程协同工作完成复制,主库上的Dump线程负责抽取日志文件,从库上的IO线程负责将主库的日志文件同步到本地,从库上的SQL线程负责将IO线程同步的日志文件应用的从库。
Canal&Otter是分布式数据库同步系统。Canal模拟Mysql Slave交互协议,伪装自己为Slave,向Master发送Dump协议,Master推送日志文件Canal。Otter基于Canal,解析Canal接收的日志文件,使用分布式的思想,多个节点协同工作将主库的变化应用到目标库。
现有技术均是基于日志文件的流式复制技术,都是数据库的高可用、实时复制、容灾等重要应用的解决方案。Mysql Replication技术在生产系统中应用功能和稳定性稍弱,数据库的主从不一致等异常情况时有发生,一旦异常后从库的恢复较为困难;Canal&Otter相对与Mysql Replication功能强大,在消费端使用了分布式的思想,实现方式较为复杂,将其灵活应用到自己的业务中并非易事。
在流复制的消费端,不同的消费端对数据的需求不同,需要有灵活的配置,现有技术无法对不断变化的消费端作统一管理和配置,在还原源数据库的事件时往往会遇到:延时时间长、性能低下,一致性难以保障,异常恢复困难等问题。在数据开放服务场景下,需要对订阅的源数据库事件过滤,转换等复杂操作,现有技术无法灵活应对。
发明内容
基于此,有必要针对现有技术在消费端数据流复制时所存在的数据库一致性难以保障、异常恢复困难的技术问题,提供一种消费端数据流复制方法及系统。
一种消费端数据流复制方法,包括:
复制步骤,包括:从分布式消息系统中拉取源数据库的事件日志作为源事件日志,将每个所述源事件日志解析成相应的数据库语句作为复制语句,执行持久化步骤;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510072163.5/2.html,转载请声明来源钻瓜专利网。