免费观看又色又爽又黄的小说免费_美女福利视频国产片_亚洲欧美精品_美国一级大黄大色毛片

10款常見MySQL高可用方案選型解讀

原文:https://yq.aliyun.com/articles/80365?utm_campaign=wenzhang&utm_medium=article&utm_source=QQ-qun&2017517&utm_content=m_21166

  • 架構比較簡單,使用原生半同步復制作為數據同步的依據

    林州網站建設公司創新互聯,林州網站設計制作,有大型網站制作公司豐富經驗。已為林州上1000+提供企業網站建設服務。企業網站搭建\外貿網站建設要多少錢,請找那個售后服務好的林州做網站的公司定做!

  • 雙節點,沒有主機宕機后的選主問題,直接切換即可

  • 雙節點,需求資源少,部署簡單

  •  

    缺點:

    • 完全依賴于半同步復制,如果半同步復制退化為異步復制,數據一致性無法得到保證

    • 需要額外考慮HAProxy、Keepalived的高可用機制

     

    2、半同步復制優化

     

    半同步復制機制是可靠的。如果半同步復制一直是生效的,那么可以認為數據是一致的。但是由于網絡波動等一些客觀原因,導致半同步復制發生超時而切換為異步復制,這時便不能保證數據的一致性。所以盡可能的保證半同步復制,就可以提高數據的一致性。

     

    該方案同樣使用雙節點架構,但是在原有半同復制的基礎上做了功能上的優化,使半同步復制的機制變得更加可靠。

     

    可參考的優化方案如下:

     

       雙通道復制

     

    10款常見MySQL高可用方案選型解讀

     

    半同步復制由于發生超時后,復制斷開,當再次建立起復制時,同時建立兩條通道,其中一條半同步復制通道從當前位置開始復制,保證從機知道當前主機執行的進度。另外一條異步復制通道開始追補從機落后的數據。當異步復制通道追趕到半同步復制的起始位置時,恢復半同步復制。

     

       binlog文件服務器

     

    10款常見MySQL高可用方案選型解讀

     

    搭建兩條半同步復制通道,其中連接文件服務器的半同步通道正常情況下不啟用,當主從的半同步復制發生網絡問題退化后,啟動與文件服務器的半同步復制通道。當主從半同步復制恢復后,關閉與文件服務器的半同步復制通道。

     

    優點:

    • 雙節點,需求資源少,部署簡單

    • 架構簡單,沒有選主的問題,直接切換即可

    • 相比于原生復制,優化后的半同步復制更能保證數據的一致性

     

    缺點:

    • 需要修改內核源碼或者使用MySQL通信協議。需要對源碼有一定的了解,并能做一定程度的二次開發

    • 依舊依賴于半同步復制,沒有從根本上解決數據一致性問題

     

    3、高可用架構優化

     

    將雙節點數據庫擴展到多節點數據庫,或者多節點數據庫集群。可以根據自己的需要選擇一主兩從、一主多從或者多主多從的集群。

     

    由于半同步復制,存在接收到一個從機的成功應答即認為半同步復制成功的特性,所以多從半同步復制的可靠性要優于單從半同步復制的可靠性。并且多節點同時宕機的幾率也要小于單節點宕機的幾率,所以多節點架構在一定程度上可以認為高可用性是好于雙節點架構。

     

    但由于數據庫數量較多,所以需要數據庫管理軟件來保證數據庫的可維護性。可以選擇MMM、MHA或者各個版本的Proxy等等。常見方案如下:

     

       MHA+多節點集群

     

    10款常見MySQL高可用方案選型解讀

     

    MHA Manager會定時探測集群中的master節點,當master出現故障時,它可以自動將最新數據的slave提升為新的master,然后將所有其他的slave重新指向新的master,整個故障轉移過程對應用程序完全透明。

     

    MHA Node運行在每臺MySQL服務器上,主要作用是切換時處理二進制日志,確保切換盡量少丟數據。

     

    MHA也可以擴展到如下的多節點集群:

     

    10款常見MySQL高可用方案選型解讀

     

    優點:

    • 可以進行故障的自動檢測和轉移

    • 可擴展性較好,可以根據需要擴展MySQL的節點數量和結構

    • 相比于雙節點的MySQL復制,三節點/多節點的MySQL發生不可用的概率更低

     

    缺點:

    • 至少需要三節點,相對于雙節點需要更多的資源

    • 邏輯較為復雜,發生故障后排查問題,定位問題更加困難

    • 數據一致性仍然靠原生半同步復制保證,仍然存在數據不一致的風險

    • 可能因為網絡分區發生腦裂現象。

     

       ZooKeeper+Proxy

     

    ZooKeeper使用分布式算法保證集群數據的一致性,使用ZooKeeper可以有效的保證Proxy的高可用性,可以較好地避免網絡分區現象的產生。

     

    10款常見MySQL高可用方案選型解讀

     

    優點:

    • 較好的保證了整個系統的高可用性,包括Proxy、MySQL

    • 擴展性較好,可以擴展為大規模集群

     

    缺點:

    • 數據一致性仍然依賴于原生的mysql半同步復制

    • 引入ZK,整個系統的邏輯變得更加復雜

     

    4、共享存儲

     

    共享存儲實現了數據庫服務器和存儲設備的解耦,不同數據庫之間的數據同步不再依賴于MySQL的原生復制功能,而是通過磁盤數據同步的手段,來保證數據的一致性。

     

       SAN共享儲存

     

    SAN的概念是允許存儲設備和處理器(服務器)之間建立直接的高速網絡(與LAN相比)連接,通過這種連接實現數據的集中式存儲。常用架構如下:

     

    10款常見MySQL高可用方案選型解讀

     

    使用共享存儲時,MySQL服務器能夠正常掛載文件系統并操作,如果主庫發生宕機,備庫可以掛載相同的文件系統,保證主庫和備庫使用相同的數據。

     

    優點:

    • 兩節點即可,部署簡單,切換邏輯簡單

    • 很好的保證數據的強一致性

    • 不會因為MySQL的邏輯錯誤發生數據不一致的情況

     

    缺點:

    • 需要考慮共享存儲的高可用

    • 價格昂貴

     

       DRBD磁盤復制

     

    DRBD是一種基于軟件、基于網絡的塊復制存儲解決方案,主要用于對服務器之間的磁盤、分區、邏輯卷等進行數據鏡像,當用戶將數據寫入本地磁盤時,還會將數據發送到網絡中另一臺主機的磁盤上,這樣的本地主機(主節點)與遠程主機(備節點)的數據就可以保證實時同步。常用架構如下:

     

    10款常見MySQL高可用方案選型解讀

     

    當本地主機出現問題,遠程主機上還保留著一份相同的數據,可以繼續使用,保證了數據的安全。

     

    DRBD是Linux內核模塊實現的快級別的同步復制技術,可以與SAN達到相同的共享存儲效果。

     

    優點:

    • 兩節點即可,部署簡單,切換邏輯簡單

    • 相比于SAN儲存網絡,價格低廉

    • 保證數據的強一致性

     

    缺點:

    • 對IO性能影響較大

    • 從庫不提供讀操作

     

    5、分布式協議

     

    分布式協議可以很好地解決數據一致性問題。比較常見的方案如下:

     

       MySQL Cluster

     

    MySQL Cluster是官方集群的部署方案,通過使用NDB存儲引擎實時備份冗余數據,實現數據庫的高可用性和數據一致性。

     

    10款常見MySQL高可用方案選型解讀

     

    優點:

    • 全部使用官方組件,不依賴于第三方軟件

    • 可以實現數據的強一致性

     

    缺點:

    • 國內使用的較少

    • 配置較復雜,需要使用NDB儲存引擎,與MySQL常規引擎存在一定差異

    • 至少三節點

     

       Galera

     

    基于Galera的MySQL高可用集群, 是多主數據同步的MySQL集群解決方案,使用簡單,沒有單點故障,可用性高。常見架構如下:

     

    10款常見MySQL高可用方案選型解讀

     

    優點:

    • 多主寫入,無延遲復制,能保證數據強一致性

    • 有成熟的社區,有互聯網公司在大規模的使用

    • 自動故障轉移,自動添加、剔除節點

     

    缺點:

    • 需要為原生MySQL節點打wsrep補丁

    • 只支持innodb儲存引擎

    • 至少三節點

     

       Paxos

     

    Paxos算法解決的問題是一個分布式系統如何就某個值(決議)達成一致。這個算法被認為是同類算法中最有效的。Paxos與MySQL相結合可以實現在分布式的MySQL數據的強一致性。常見架構如下:

     

    10款常見MySQL高可用方案選型解讀

     

    優點:

    • 多主寫入,無延遲復制,能保證數據強一致性

    • 有成熟理論基礎

    • 自動故障轉移,自動添加、剔除節點

     

    缺點:

    • 只支持InnoDB儲存引擎

    • 至少三節點

       

    總結

     

    隨著人們對數據一致性要求不斷的提高,越來越多的方法被嘗試用來解決分布式數據一致性的問題,如MySQL自身的優化、MySQL集群架構的優化、Paxos、Raft、2PC算法的引入等。

     

    而使用分布式算法用來解決MySQL數據庫數據一致性問題的方法,也越來越被人們所接受,一系列成熟的產品如PhxSQL、MariaDB Galera Cluster、Percona XtraDB Cluster等越來越多的被大規模使用。

     

    隨著官方MySQL Group Replication的GA,使用分布式協議來解決數據一致性問題已經成為了主流的方向。期望越來越多優秀的解決方案被提出,MySQL高可用問題也可以被更好的解決。

    網頁標題:10款常見MySQL高可用方案選型解讀
    網站地址:http://m.newbst.com/article12/iicdgc.html

    成都網站建設公司_創新互聯,為您提供全網營銷推廣動態網站面包屑導航網站建設服務器托管網站制作

    廣告

    聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

    綿陽服務器托管