基於Raft的分散式MySQL Binlog儲存系統開源
近期開源了一個自己的專案:kingbus,感興趣的可以看看。 https://github.com/flike/kingbus
kingbus 簡介
kingbus 是一個基於 raft 強一致協議實現的分散式 MySQL binlog 儲存系統。它能夠充當一個 MySQL Slave 從真正的 Master 上同步 binglog,並儲存在分散式叢集中;同時又充當一個 MySQL Master 將叢集中的 binlog 同步給其他 Slave。kingbus 具有如下特性:
-
相容 MySQL 複製協議,通過 Gtid 方式同步Master 上的 binlog,同時支援 slave 通過 Gtid 方式從 kingbus 拉取 binlog。
-
跨地域資料複製,kingbus 通過 raft 協議支出跨地域間的資料複製。寫入到叢集的 binlog 資料在多個節點間保證強一致,並保證 binlog 順序與 master 上完全一致。
- 高可用,由於 kingbus 是構建在 Raft 強一致協議之上,能夠實現叢集中過半數節點存活的情況下,整個 binlog 拉取和推送服務高可用。
為什麼需要 kingbus ?
- 降低 Master 的負載和網路傳輸流量。在一主多從的複製拓撲中,Master 需要傳送 binlog 到各個 slave,如果 slave 過多的話,網路流量很有可能達到 Master 的網路卡上限,同時 Master 上負載也會過高。
- 簡化主從複製拓撲,不再需要多級複製。
- 簡化 Master Failover 流程,只需將其中的一個 Slave 提升為 Master,並將 kingbus 指向新的 Master,其他 slave 複製拓撲保持不變。
- 減少 Master 上的 binlog 儲存空間,將 binlog 都儲存到 kingbus 中。
- 支援異構複製。其他異構複製元件可以連線在 kingbus 上。
相關文章
- 騰訊重磅開源分散式NoSQL儲存系統DCache分散式SQL
- 提升Raft以加速分散式鍵值儲存Raft分散式
- 分散式系統理論基礎6:Raft、Zab分散式Raft
- 基於內容定址的分散式儲存系統IPFS,你怎麼看?分散式
- Tachyon--以記憶體為核心的開源分散式儲存系統記憶體分散式
- 分散式系統的Raft演算法分散式Raft演算法
- Bayou複製分散式儲存系統分散式
- 基於MFS高可用的分散式儲存架構分散式架構
- juicefs:一個基於Redis和雲物件儲存的分散式POSIX檔案系統UIRedis物件分散式
- 基於 Raft 構建彈性伸縮的儲存系統的一些實踐Raft
- IPFS分散式儲存挖礦技術系統開發分散式
- 編寫你的第一個 Java 版 Raft 分散式 KV 儲存JavaRaft分散式
- 雲端儲存及其分散式檔案系統分散式
- 分散式儲存系統可靠性:系統量化估算分散式
- 分散式系統理論進階 - Raft、Zab分散式Raft
- 分散式儲存系統可靠性如何估算?分散式
- 分散式系統中資料儲存方案實踐分散式
- 分散式儲存與傳統網路儲存系統相比有哪些區別分散式
- 分散式儲存系統的最佳實踐:系統發展路徑分散式
- [技術思考]分散式儲存系統的雪崩效應分散式
- 必須掌握的分散式檔案儲存系統—HDFS分散式
- 分散式系統中的資料儲存方案實踐分散式
- IPFS分散式儲存挖礦系統開發軟體技術分散式
- 分散式系統之Raft共識演算法分散式Raft演算法
- 360開源的類Redis儲存系統:PikaRedis
- 分散式系統技術:儲存之資料庫分散式資料庫
- 杉巖PACS影像系統分散式儲存架構分散式架構
- 分散式kv儲存系統之Etcd叢集分散式
- 分散式 Key-Value 儲存系統:Cassandra 入門分散式
- 通過Consul Raft庫打造自己的分散式系統Raft分散式
- Zipkin開源分散式跟蹤系統分散式
- 基於滴滴雲搭 SeaweedFS 儲存系統
- 分散式塊儲存系統Ursa的設計與實現分散式
- 基於 Golang 開發的分散式定時任務管理系統Golang分散式
- 用於分散式系統法定人數仲裁的開源庫包:Quoracle分散式Oracle
- Redis 分散式儲存Redis分散式
- HDFS分散式儲存分散式
- 分散式儲存概述分散式