Otter-入門篇1(阿里開源項目Otter介紹) 頂 原 薦

#Otter-入門篇1(阿里開源項目Otter介紹)#

##前言##

嗚啦啦啦啦!今天筆者又來開坑了,這次開坑的對象呢是阿里的一個開源項目Otter,Otter它是一個數據同步解決方案,可以解決本地跨網絡跨機房跨地域的數據同步問題,並且擁有可觀的效率,web管理工具等特點,而且背景也很優秀,據說阿里B2B內部的本地/異地機房的同步需求基本全上了otter。

附上:

喵了個咪的博客:w-blog.cn

Otter項目地址:https://github.com/alibaba/otter

Otter文檔地址:https://github.com/alibaba/otter/wiki

##1. Otter是什麼##

Ottter是由阿里爸爸開源的一個數據同步產品,它的最初的目的是爲了解決跨國異地機房雙A架構,兩邊可寫的場景,開發時間從2011年7月份一直持續到現在,目前阿里巴巴B2B內部的本地/異地機房的同步需求基本全上了Otter。

Otter基於數據庫增量日誌解析,支持mysql/oracle數據庫進行同步,在最新的v4.2.13已經支持mysql5.7以及阿里雲提供的RDS數據庫(使用RDS童鞋的福音)

###工作原理

下圖是關於Otter運行原理圖:

更具上圖裏面關鍵幾個元素進行介紹

  • db : 數據源以及需要同步到的庫
  • Canal : 用戶獲取數據庫增量日誌
  • manager : 配置同步規則設置數據源同步源等
  • zookeeper : 協調node進行協調工作
  • node : 負責任務處理處理接受到的部分同步工作

###特性

筆者總結了一下Otter的一些特性:

  • 使用純JAVA開發,佔時資源比較高
  • 基於Canal獲取數據庫增量日誌,Canal是阿里爸爸另外一個開源產品
  • 使用manager(web管理)+node(工作節點),manager負責配置監控,node負責處理任務
  • 基於zookeeper,解決分佈式狀態調度的,允許多node節點之間協同工作
  • 使用aria2多線程傳輸技術,對網絡依賴帶寬依賴較低

##2. Otter能解決什麼問題##

技術最終是解決業務問題的,不然還是耍流氓!我們來一同看看 Otter 到底能解決我們在開發中遇到的那些場景中的問題

###異構庫同步

Otter支持從Mysql同步到Mysql/oracle,我們可以把mysql同步到oracle

###單機房同步

可以作爲一主多從同步方案,對於單機房內網來說效率非常高,還可以做爲數據庫版本升級,數據表遷移,二級索引等這類功能

###異地機房同步

異地機房同步可以說是Otter最大的亮點之一,可以解決國際化問題把數據從國內同步到國外來提供用戶使用,在國內場景可以做到數據多機房容災

###雙向同步

雙向同步是在數據同步中最難搞的一種場景,Otter可以很好的應對這種場景,Otter有避免迴環算法和數據一致性算法兩種特性,保證雙A機房模式下,數據保證最終一致性

###文件同步

站點鏡像,進行數據複製的同時,複製關聯的圖片,比如複製產品數據,同時複製產品圖片

##3. 總結##

今天我們簡單的瞭解了一下關於Otter是一個什麼樣子的軟件,它可以解決什麼問題,下一節將會介紹如何搭建zookeeper和manager管理工具,那麼謝謝大家的支持我們下節再見!

注:筆者能力有限有說的不對的地方希望大家能夠指出,也希望多多交流!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章