tt2mysql —— 一个异构数据库同步方案

大多数数据库都自带了同步方案,但通常是同步到同一类型的数据库。在一些特定的情况下,我们可能希望把数据从一种数据库,同步到另一种数据库,以便进行数据分析、统计、挖掘等,或是完成实时监控、实时搜索等服务。

  本文介绍的就是这样一个方案,把数据从NoSQL数据库ttserver同步到MySQL上。

  数据的同步过程基本上可以分解成:获取、解析、识别、处理。

  获取同步(replicating)过程基本上就是处理高性能网络交互、各层通信协议、基于安全考虑的身份验证等问题的过程。解析(parsing)过程主要处理具体数据结构,由分派器(dispatcher)分派给具体的识别器(recognizer)进行识别。最终由处理器调用数据访问层完成整个过程。基本过程可见下方草图:

  以上只是一个简化的草图,实际完成的时候,还有很多细节需要处理,如,

  1)快照点的选择,以及生成快照点的方案。不稳定的数据是没用的;

  2)协议、数据结构的可配置化。不同的场景下只需要简单配置,就能满足具体业务;

  3)对前后端数据服务的抽象。只有抽象化,才能让它成为一个有生命力的方案;

  4)高处理能力。异步、非阻塞、多worker、操作合并;

  5)考虑对协议升级的兼容方案;

  6)可支持前后端数据迁移、数据分片;

  7)前后端多实例同时使用;

  8)全局同步与增量同步方案同时支持,新同步点支持;

  9)各种可能的出错:网络、数据、服务等处理、监控、告警;

  10)稳定性、可用性;

  11)完备的统计数据。方案做得怎么样,总要有数据才好说话吧:)

  顺带把部分初期概念设计图放出来。后来已经有一些演变,但只是少数环节上。在大部分的环节上,基本思路没有太大的变化。

  经过一段时间的奋战把方案实现出来,功能验证也比较顺利通过了,实战又将跑得怎么样?具体业务及性能数字未经同意不准备在此公布,但可说侧面说一下。目前,该方案上线应该已经将近一年,除了少数几次前端迁移以外,未停过服。性能方面,一年后,在业务已经有量级发展的情况下,该方案仍能满足需求。

  另外,虽然命名为tt2mysql,我从未把该方案当成是数据库之前的同步方案。以前说过会把东西总结出来,一直太懒,翻到了就写一下。

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-08-29 04:24:18

tt2mysql —— 一个异构数据库同步方案的相关文章

基于HBase的医疗卫生数据中心构建与异构数据库同步研究

基于HBase的医疗卫生数据中心构建与异构数据库同步研究 电子科技大学 方诗伟 为确定数据模型,提出以关系数据库的E-R建模基础提出HBase的C-O-R建模思想,然后综合分析卫生部颁布医疗卫生元数据标准和部分医疗卫生机构的实际情况,实现医疗卫生信息的HBase数据中心构建.为实现把各医疗机构的异构关系数据库中的数据透明无差异的同步到数据中心,提出以下方案.首先,在数据格式上提出异构数据库产生的异构数据进行标准化的XML和JSON通用数据格式封装实现屏蔽异构数据库的数据差异;其次是传输协议简单及

java-我想实现一个和数据库同步的Jsp页面,哪位大神指点下?

问题描述 我想实现一个和数据库同步的Jsp页面,哪位大神指点下? 用户需求是,A地点有台计算机,B地点有台计算机,当A地点的计算向数据库插入数据时,B地点的计算机可以立即看到A地点所输入的数据. 解决方案 Spring框架有个定时器http://taiwei-peng.iteye.com/blog/689061 解决方案二: 你的意思是JSP页面数据同步么?web页面刷新写个定时器,定时去查询数据库刷新页面 解决方案三: Dango可以直接实现架设好,基本就可以了

基于Windows服务的异构数据库同步应用

随着电子信息化的发展与应用,各个企业各个单位之间都开发和应用了自己的 信息化系统.各个单位之间使用了不同的开发技术和后台数据库,它们之间是分 离,没有关系的.企业集成不仅仅能创建一个三(表现层.业务层.数据访问层) 层应用结构,还能使一个应用分布到多台计算机上.分布式应用中,单个的一层 是无法自己运行的,而集成应用中的每一个应用都能独立运行,它们时间通过偶 合完成功能.异步消息传递体系结构来集成多个应用,异构数据库的同步问题是 实际项目中急待解决的问题 1 系统需求 电子数据交换最主要的任务是实

通过创建SQLServer 2005到 Oracle10g 的链接服务器实现异构数据库数据转换方案_mssql2005

1.新建链接服务器  在图1中选中"链接服务器",右键选择"新建链接服务器",如图2,配置相关参数. 2.配置相关参数 在"常规"选项中,填写"链接服务器名称",访问接口选中 " Microsoft OLE DB Provider for Oracle"项.其中产品名称.数据源.访问接口字符串请填写配置的Oracle客户端在本地配置的net服务名.如图3所示. 在"安全性"项中,选中使用

异构数据库复制技术的研究与实现(上)

数据|数据库 异构数据库复制技术的研究与实现   1 引言网络技术的飞速发展和广泛应用,特别是因特网的普及,大大方便了企业的跨地域发展.同时,为了适应不断增长的商业竞争环境,许多企业通过不断重组和分散经营来提高效率,形成了分散.异构的环境特点.同时这些组织在地域上虽然分散,但在管理上相对集中,往往既要有各部门的局部控制和分散管理,也要有整个组织的全局控制和高层次的协同管理.这种协同管理要求各部门之间的信息既能灵活交流和共享,又能统一管理和使用. 当前,分布式数据库技术已经成熟,并且因计算机成本的

SQLServer数据库同步准实时方案

server|sqlserver|数据|数据库 1. 需求    1)如何将在线运营的SQLServer数据库数据及时同步到另外一个SQLServer数据库.    2)数据仓库系统的数据抽取会对源系统造成巨大压力,严重影响性能和响应速度.如何将生产数据快速抽取到历史数据仓库,改善业务系统的性能.    3)分布式数据库,如何将分部的数据库数据复制到总部数据库,以利于总部汇总统计.这些业务应用中常见的SQLServer数据库同步需求,都需专业的复制系统来完成. 2. 同步方案   浪擎·镜像系统

数据库表记录的一种同步方案

涉及到多个数据库之间的同步,由于某些原因(某些数据库只需要表内部分数据:数据库类型目前为MySQL,但可能后期部分数据库采用Oracle),不能采用MySQL的主从同步机制.由于对同步的实时性要求不高,记录个数也不是太多,另外做了一种简易的同步方案. 一. 通过触发器生成数据表版本号 将数据表的每次更新时间记录到另一张版本表中. drop table if exists Tab_Version_Tab; create table Tab_Version_Tab ( Tab_Name      

MySQL异构数据同步--tair为例

在实现levelDB挂载成MySQL引擎时,发现在实际存储是key-value格式时候,MySQL的异构数据同步,可以更简单和更通用. 以tair为例,简要描述一下以MySQL为基础的一种方案. 所谓异构数据同步,是指应用只更新MySQL,而由后端的某些机制将这些更新应用到其他数据存储服务上. 1.MySQL-Tair 引擎 a) 使用 b) 说明 这不是一个"存储引擎",实际上数据存储在tair服务器上.执行insert/update/delete时,只是将对应的动作put /rem

XML实现异构数据库间转换的实现与分析(转)

xml|数据|数据库|转换 XML实现异构数据库间转换的实现与分析 类型: XML/Biztalk 收录时间: 2002-4-8 9:20:00 XML中一种扩展的标记语言,它具有很好的扩展性标记.本文通过XML实现不同数据库的定义,实现对XML数据库的访问和异构数据库之间的互访.   关键词:XML  异构数据库  信息交换  数据库访问  1  引言   XML(Extensible  Markup  Language)它是由W3C组织于1998年2月  制定的一种通用语言规范,是SGML