MySQL同步工具otter的使用介紹(一) - 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之間的同步

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM