MySQL中如何選擇高可用架構,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創新互聯堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網站制作、成都網站建設、企業官網、英文網站、手機端網站、網站推廣等服務,滿足客戶于互聯網時代的陽泉網站設計、移動媒體設計的需求,幫助企業找到有效的互聯網解決方案。努力成為您成熟可靠的網絡建設合作伙伴!
一 、高可用架構
MySQL Replication
經典的主從復制,需要多個步驟手動進行配置。例如,用戶管理、備份恢復、配置復制......MySQL僅提供了核心功能,整體架構需要用戶自己決定(大部分情況下需要定制)。在這種情況下,組織或者公司需要使用不同的技術組件,技術專家或DBA需要將大量的工作和時間投入到自動化處理。
MySQL InnoDB Cluster
2016年,MySQL推出了MySQL InnoDB Cluster,InnoDB Cluster主要包括MySQL Group Replication(群組成員變化管理、網絡分區控制、集群范圍一致性......),MySQL Shell(強有力的接口,自動化整合全部的組件),MySQL Router(應用透明路由、負載均衡、自動應用故障轉移......)以及MySQL Clone(自動化部署成員,完全整合至InnoDB Cluster)。
MySQL InnoDB Replica Set
2020年,MySQL推出MySQL InnoDB Replica Set。該功能基于經典的主從復制,完全整合MySQL Shell和MySQL Router。
二、InnoDB Cluster和InnoDB Replica Set
上面簡要介紹了MySQL高可用的過去和現在的解決方案,下面將詳細地介紹InnoDB Cluster和InnoDB Replica Set。
MySQL InnoDB Cluster是MySQL的一體化產品解決方案,具有高可用性和可伸縮性的特點,組件包括MySQL Server、MySQL Shell、MySQL Router和MySQL Group Replication。它的目標是提供一個MySQL一體化產品,全部的組件統一開發,整合全部的組件,并進行全棧測試。此外,簡單易用也是該產品的特色,使用一個統一的客戶端MySQL Shell統一進行集群編排和管理。
MySQL Group Replication
MySQL Group Replication是分布式高可用MySQL數據庫,具有容錯、自動故障轉移、多節點更新、自動成員管理、沖突檢測/解決以及防止數據丟失功能。它是復制數據庫狀態機理論的實現,能夠保證整體寫入順序,保證一致性。集群范圍內最終一致,如果使用8.0.14之后的MySQL可以實現會話和全局范圍的讀寫強一致性。MySQL 5.7版本將這個功能GA,并支持全部的MySQL平臺,包括Linux、Windows、Solaris、macOS 、FreeBSD等。
MySQL Group Replication可以用于如下場景:
一致性:數據零丟失(RPO=0)
○ 主要成員故障時,數據不會丟失。
○ 防止網絡分區,通過大多數在線原則防止網絡分區。
高可用性:自動故障轉移
○ 自動選取主要成員
○ 自動控制網絡分區
讀取擴展:
○ 按需增加/刪除節點
○ 使用流程控制處理延遲
○ 可配置一致性級別
? 最終一致
? 完整一致性
主主環境:
○ 同時寫入多個成員
? 組內順序寫入(XCOM,PAXOS理論的實現)
? 保證一致性
○ 寫入性能良好
? 樂觀鎖(取件于工作負載)
MySQL Router
透明訪問數據庫的架構,在應用程序和后端的MySQL數據庫之間提供透明的路由連接。
透明客戶端連接路由
○ 負責均衡
○ 應用程序連接故障轉移
○ 配置簡單
無縫設計提供簡單的HA客戶端路由
○ 路由作為應用程序棧的一部分
整合InnoDB Cluster和InnoDB Replica Set
2個TCP端口用于主節點和非主節點通信
MySQL Shell
提供一個數據庫管理接口,可以執行MySQL相關的全部任務。
支持多種語言:JavaScript、Python、SQL
可編寫腳本
支持文檔存儲和關系型模型
公開完整的開發和管理API
經典的MySQL協議和X協議
MySQL Shell簡單易用,可以通過它快速搭建InnoDB Cluster。
創建集群
配置實例
添加實例
啟動MySQL Router
檢查集群狀態
MySQL InnoDB Replica Set
完全整合MySQL Router
簡單易用的MySQL Shell
配置、增加、移除成員
自動化部署成員(Clone)
主從復制架構
○ 手動進行切換和故障轉移
○ 異步讀取擴展
○ 簡單的主從架構
○ 沒有硬件網絡要求
? 提供主節點的可用性
InnoDB Replica Set可以通過克隆自動部署新成員,利用MySQL Shell自動配置用戶和復制,手動配置、增加移除應用程序使用的服務器,MySQL Router或其他代理,并且能夠整合MySQL Router的負載均衡能力。從而避免了以往配置主從復制時所需的繁瑣步驟。
以往需要使用額外的監控工具在每臺服務器上去檢查拓撲狀態,用戶需要負責全部組件的所有配置,每一個設置都相當于定制化。使用InnoDB Replica Set可以通過MySQL Shell status()來查看拓撲狀態,并且Shell會基于最佳實踐配置服務器、路由和復制,以防止發生錯誤。
InnoDB Replica Set是一套標準的解決方案,由MySQL團隊提供支持和質量保證,這個方案的優點是簡單易用,初學者也可以快速掌握。
三、如何選擇高可用架構
最后說明一下如何選擇不同的高可用架構。
首先要明確業務的需求,高可用性越高意味著成本也越高??梢詮囊韵聨讉€方面去明確目標:
恢復時間目標(RTO)
服務從故障中恢復需要多長時間?
恢復點目標(RPO)
服務在故障中允許丟失的數據
故障類型
○ 高可用:單一服務器故障,網絡分區
○ 容災:整體地域/網絡故障
○ 人為錯誤:操作失誤,故意破壞
程度
○ 0
○ 秒
○ 分
○ 小時
○ ...
不同業務需求對應的架構
單一地域
RTO=小時
RPO=分
一臺MySQL服務器
○ 備份
○ 同步日志
單一地域
RTO=小時
RPO=少于1秒
一臺MySQL服務器
○ 頻繁備份
○ 持續拉取二進制日志
單一地域
RTO=數分
RPO=少于1秒
MySQL InnoDB Replica Set
單一地域
RTO=數秒
RPO=0
MySQL InnoDB Cluster
多地域
地域故障
RTO=數分
RPO=數秒
MySQL InnoDB Cluster
○ 配合使用異步復制
多地域
地域故障
RTO=數分
RPO=0
MySQL InnoDB Cluster 跨地域部署
○ 兩個地域的一致性級別設置為AFTER,或者三個地域,每個地域具有1-2個成員。
○ 寫入的吞吐量受到影響,寫入事務需要保證事務同步。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創新互聯行業資訊頻道,感謝您對創新互聯的支持。
文章名稱:MySQL中如何選擇高可用架構
本文路徑:http://www.2m8n56k.cn/article8/iesoop.html
成都網站建設公司_創新互聯,為您提供品牌網站建設、微信小程序、網站策劃、用戶體驗、網站導航、小程序開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯