zoukankan      html  css  js  c++  java
  • MySQL同步工具otter的使用介绍(一)

    一、摘要

    《MySQL同步工具otter的使用介绍》将分为五篇文章详细介绍如何使用otter来进行MySQL的数据同步。

    本文将简单介绍otter的背景和原理。

    otter项目github地址:GitHub - alibaba/otter: 阿里巴巴分布式数据库同步系统(解决中美异地机房)

    二、otter项目背景

      阿里巴巴B2B公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了杭州和美国异地机房的需求,同时为了提升用户体验,整个机房的架构为双A,两边均可写,由此诞生了otter这样一个产品。

      otter第一版本可追溯到04~05年,此次外部开源的版本为第4版,开发时间从2011年7月份一直持续到现在,目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了otte4。

    目前同步规模:

    1. 同步数据量6亿
    2. 文件同步1.5TB(2000w张图片)
    3. 涉及200+个数据库实例之间的同步
    4. 80+台机器的集群规模

    三、otter同步简介

    (1)工作原理架构图

    描述:

    1. 基于Canal开源产品,获取数据库增量日志数据。 

    2. 典型管理系统架构,manager(web管理)+node(工作节点)

        a. manager运行时推送同步配置到node节点

        b. node节点将同步状态反馈到manager上

    3. 基于zookeeper,解决分布式状态调度的,允许多node节点之间协同工作.

    (2)基于otter可以实现的功能

    1.基于binlog位点信息实现源端MySQL-目标端MySQL的准实时同步(测试下来,在没有大事务的或者慢SQL的情况下,同步延迟在秒级)

    2.可以配置正则表达式,实现库到库的同步,表到表的同步,同步颗粒度可以精确到某一列

    3.可以通过正则表达式或者配置canal过滤掉不需要同步的表

    4.可以正常同步DDL语句,并且跳过DDL异常

    5.可以进行表的批量配置,后续会介绍到如何批量配置表的同步

    6.可以在配置中嵌入代码,实现简单的etl

    7.otter社区版支持源端MySQL-目标端Oracle的同步

    8.MySQL双向同步(此功能仍待验证,生产环境不建议使用双向同步)

    (3)otter相较于传统的MySQL主备模式的优点

    1.灵活程度更高,可以选择同步哪些库,哪些表,过滤哪些表,甚至可以选择同步哪些列

    2.图形化界面配置,可以清楚看到同步延时,同步状态,数据变化情况,便于运维和分析问题

    3.分布式同步工具,可以配置多个node,提高同步效率

    4.支持代码内嵌,可以通过代码的方式,实现etl过程

    5.支持Oracle与MySQL之间的同步

  • 相关阅读:
    分而治之应该把握哪些原则呢
    什么事SOA
    SOA架构设计的案例分析课后 学习
    关于分层架构的知识学习
    从小编程,到架构师,我们应该具备什么
    基于MVC架构实例分析以校园知网校内论坛功能为例
    服务架构设计及其应用
    《一线架构师实践指南》阅读笔记03
    《一线架构师实践指南》阅读笔记02
    Pre-Architecture 阶段阅读笔记
  • 原文地址:https://www.cnblogs.com/cairsha/p/15074021.html
Copyright © 2011-2022 走看看