开发者社区> 寒凝雪> 正文

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/

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MySQL同步数据到本地自建数据库
对业务系统来说,数据可靠性非常重要。如何通过简单的配置,实现适当有效的备份机制并具备快速恢复能力是本最佳实践所要解决的主要问题。阿里云数据库RDS for mysql提供多种方式可以让用户同步数据到本地自建数据库。本文将着重为大家介绍RDS MySQL同步数据到本地自建库的方法。
5909 0
mysql 数据库拆分与整合方案
文章整理自:http://www.linuxidc.com/Linux/2011-08/40601p2.htm 1、数据切分方案 当数据库比较庞大,读写操作特别是写入操作过于频繁,很难由一台服务器支撑的时候,我们就要考虑进行数据库的切分。
1753 0
不同场景下MySQL的迁移方案
一 为什么要迁移 MySQL 迁移是 DBA 日常维护中的一个工作。迁移,究其本义,无非是把实际存在的物体挪走,保证该物体的完整性以及延续性。就像柔软的沙滩上,两个天真无邪的小孩,把一堆沙子挪向其他地方,铸就内心神往的城堡。
858 0
HTAP数据库——HybirdDB for MySQL产品和典型方案介绍
10月12日的云栖大会·HTAP技术专场中,阿里云产品专家陈琢分享了阿里云自研的HTAP数据库,并重点分享了相关技术及实现、如何借助HTAP技术解决业务痛点等内容。
7429 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL
立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL
立即下载
为什么PostgreSQL是最适合去O的数据库
立即下载