什麼是mysql innodb cluster?
一.簡介
MySQL InnoDB叢集提供了一個整合的,本地的,HA解決方案。MySQL InnoDB叢集由以下幾部分組成:
MySQL Servers with Group Replication:向叢集的所有成員複製資料,同時提供容錯、自動故障轉移和彈性。
MySQL Router:確保客戶端請求是負載平衡的,並在任何資料庫故障時路由到正確的伺服器。
MySQL Shell:通過內建的管理API建立及管理Innodb叢集。
各個元件的關係如下圖所示:
二.特性
1.整合易用
MySQL InnoDB叢集緊密集成了MySQL Servers with Group Replication,MySQL Router,和MySQL Shell,所以你不必依賴於外部工具,指令碼或其他部件。
另外,它利用了現有的MySQL特性,如:InnoDB, GTIDs, binary logs, multi-threaded slave execution, multi-source replication and Performance Schema。你可用在五分鐘內利用MySQL Shell中的指令碼化的管理API來建立及管理MySQL叢集。
2.使用組複製的mysql server HA
組複製提供了內建的組成員管理、資料一致性保證、衝突檢測和處理、節點故障檢測和資料庫故障轉移相關操作的本地高可用性,無需人工干預或自定義工具。組複製同時實現了帶自動選主的單主模式及任意更新的多主模式。
通過使用一個強大的新的組通訊系統,它提供了流行的Paxos演算法的內部實現,來自動協調資料複製、一致性、membership。這提供了使MySQL資料庫高度可用所需的所有內建機制。
3.彈性
通過組複製,一組伺服器協調在一起形成一個組。組成員是動態的,伺服器可以自願或強制的地離開及隨時加入。組將根據需要自動重新配置自己,並確保任何加入成員與組同步。這樣就可以方便地在需要時快速地調整資料庫的總容量。
4.故障檢測
組複製實現了一個分散式故障檢測器來查詢並報告failed或不再參與組的伺服器,組中剩餘成員將重新配置。
5.容錯
組複製基於流行的Paxos分散式演算法來提供伺服器之間的分散式協調。為了使一個小組繼續發揮作用,它要求大多數成員線上,並就每一個變化達成協議。這允許MySQL資料庫在發生故障時安全地繼續操作,而無需人工干預,不存在資料丟失或資料損壞的風險。
6.自愈
如果一個伺服器加入該組,它將自動將其狀態與現有成員同步。如果伺服器離開該組,例如它被取下來進行維護,剩下的伺服器將看到它已離開,並將自動重新配置組。當伺服器後重新加入組,它會自動重新與組同步。
7.監測
MySQL Enterprise Monitor 3.4及以後的版本全面支援組複製;監控每個節點的配置,健康,和效能。並且提供最佳實踐建議和提醒,以及易於理解的視覺化工具,允許您輕鬆地監控和管理您的組複製和InnoDB叢集。
8.通過MySQL Router為mysql客戶機應用程式實現HA
MySQL的路由器允許您輕鬆遷移您的獨立的MySQL例項到本地分散式高可用叢集而不影響現有的應用程式。新metadata_cache外掛為Innodb 叢集提供了透明的客戶端連線路由、負載平衡和故障轉移的能力。
9.簡單易用的MySQL shell
MySQL Shell為所有MySQL相關的任務提供了一個直觀、靈活、功能強大的介面。
新的adminapi使得它很容易用一種自我描述的自然語言來建立,監控和管理包括MySQL Router在內的MySQL InnoDB叢集,而不需要了解低層次的概念,配置選項,或其他複雜的方面。