mysql 集群 自動分片 Mysql集群

2021-10-18 02:06:22 字數 1815 閱讀 9498

特性:

高可用性:主伺服器故障後可切換到備用伺服器

可伸縮性:方便增加db

負載均衡:支援將某資料切換到另外的伺服器

mysqlcluster

mysql cluster 是mysql官方集群部署方案,通過自動分片支援讀寫擴充套件,通過實時備份冗餘資料,是可用性最高的方案,聲稱可做到99.999%的可用性。

mysql cluster 主要由三種型別的服務組成。

ndb management server:管理伺服器主要管理cluster中的其他型別節點(data node和sql node),通過它可以配置node資訊,啟動和停止node。

sql node:在mysql cluster中,乙個sql node就是乙個使用ndb引擎的mysql server程序,用於供外部應用提供集群資料的訪問入口。

data node:用於儲存集群資料。

缺點:對需要進行分片的表需要修改引擎innodb為ndb。ndb的事務隔離級別只支援read commited,即乙個事務在提交前,查詢不到在事務內所做的修改。innodb支援所有事務隔離級別,預設用 repeatable read。盡量不要使用外來鍵,因為外來鍵所關聯的記錄可能在別的分片節點中。

四種事務隔離界別

serializable 序列化,事務乙個接乙個地執行,而不能併發執行

repeatable read 可重複讀,乙個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,但是不能看到其他其他事務對已有記錄的更新。

read commited(讀已提交資料):乙個事務在執行過程中可以看到其他事務已經提交的新插入的記錄,而且能看到其他事務已經提交的對已有記錄的更新。

read uncommitted(讀未提交資料):乙個事務在執行過程中可以看到其他事務沒有提交的新插入的記錄,而且能看到其他事務沒有提交的對已有記錄的更新。

mysql fabric

兩個特性:高可用和使用資料分片實現可擴充套件性和負載均衡。

fabric 使用ha組實現高可用,一台主伺服器,其他是備份伺服器,備份伺服器通過同步複製實現資料冗餘。鏈結到fabric的connector元件,當伺服器發生故障後,connector自動公升級其中乙個備份伺服器為主伺服器。

使用多個ha組實現分片,每個組分擔不同的分片資料。應用只需向connector傳送query和insert語句,connector 通過master group自動分配資料到各個組,或者從各個組中組合符合條件的資料,返回給應用程式。

缺點:自增長鍵不能作為分片的鍵;事務及查詢只支援在同乙個分片內,事務中更新的資料不能跨分片,查詢語句返回的資料也不能跨分片。

fabric 分片:當一台機器或乙個組承受不了服務壓力後,可以新增伺服器分攤讀寫壓力,通過fabirc的分片功能可以將某些表中資料分散儲存到不同伺服器。我們可以設定分配資料儲存的規則,通過在表中設定分片key設定分配的規則。另外,有些表的資料可能並不需要分片儲存,需要將整張表儲存在同乙個伺服器中,可以將設定乙個全域性組(global group)用於儲存這些資料,儲存到全域性組的資料會自動拷貝到其他所有的分片組中。

galera cluster

多個服務能夠同時被讀寫,無延遲複製,不會產生資料丟失,備用伺服器會自動接管,不會產生宕機時間,無需手動複製資料庫到新的節點上,支援innodb引擎。

架構實現原理:

傳統:replication(複製)方式是通過啟動複製執行緒從主伺服器上拷貝更新日誌,然後傳送到備份伺服器上執行,存在丟失或者同步不及時的風險。

galera:客戶端通過galera load balancer訪問資料,提交每個事物都通過wrsp api在所有伺服器中執行,要麼全部成功,要麼全部回滾。

缺點:由於同乙個事務需要在集群的多台機器上執行,效能上會有消耗。

集群安裝mysql 集群rpm安裝MySQL

安裝mysql資料庫 b 安裝mysql源 yum localinstall mysql57 community release el7 8.noarch.rpm 若結尾出現complete 則說明mysql源安裝完成 c 檢測是否安裝完成 yum repolist enabled grep mys...

MongoDB集群分片

什麼是sharding?說白了就是把海量資料水平擴充套件的集群系統,資料分表儲存在sharding的各個節點上。mongodb的資料分開分為chunk,每個chunk都是collection中的一段連續的資料記錄,一般為200mb,超出則生成新的資料塊。構建sharding需要三種角色,shard伺...

mongodb分片 集群

目前在乙個機器上部署,ip 10.1.2.197,埠列表如下 埠埠埠路由服務 27061 路由服務 27062 路由服務 27063 配置服務 27071 配置服務 27072 配置服務 27073 副本集1 27011 副本集2 27021 副本集3 27031 副本集1 27012 副本集2 2...