安裝https://blog.51cto.com/jiajinh/2416134
otter是一個分布式數據庫同步系統工具,純java編寫,支持windows和linux操作系統。阿里的開源項目,數據同步的解決方案。
github:https://github.com/alibaba/otter
Otter作為阿里巴巴開源的是一個數據同步產品,他的最初目的是為了解決跨國異地機房雙A架構,兩邊可寫的場景,開發時間是從2011年一直持續到今天。
目前阿里巴巴b2b內部的本地--異地機房的同步需求基本上已經全部上了Otter。Otter基於數據庫增量日志解析,支持mysql/oracle數據庫進行同步,在最新的v4.2.13已經支持了mysql5.7以及阿里雲提供的RDS數據庫。
Otter工作原理:
- 基於Canal開源產品,獲取數據庫增量日志數據。 什么是Canal,
請點擊https://github.com/alibaba/canal - 典型管理系統架構,manager(web管理)+node(工作節點)
manager運行時推送同步配置到node節點
node節點將同步狀態反饋到manager上 - 基於zookeeper,解決分布式狀態調度的,允許多node節點之間協同工作.(otter node依賴於zookeeper進行分布式調度,需要安裝一個zookeeper節點或者集群)
- db : 數據源以及需要同步到的庫
- Canal : 用戶獲取數據庫增量日志,目前主要支持mysql
- manager : 配置同步規則設置數據源同步源等
- zookeeper : 協調node進行協調工作
- node : 負責任務處理處理接受到的部分同步工作