Mysql

9 節點 percona xtradb 集群

  • July 21, 2017

我們希望在 Amazon 上啟動一個 9 節點 percona xtradb 集群,其中每個 ec2 節點使用 20k iops 磁碟。

我擔心 9 節點集群是否可以工作,而我看到的主要是 3 節點集群。

我們在一些表上寫得很重,也讀得很重。

有什麼建議。

PXC 和 Galera Cluster 不能很好地寫入規模。

我在對 mySQL v5.6 複製的舊文章事務速度基準的回答中提到了這一點-在我說以下內容時似乎很慢:

請記住,Percona XtraDB Cluster 一開始並沒有很好地編寫規模。請注意文件在其缺點(第二個缺點)下所說的內容:

這不能用作有效的寫入縮放解決方案。當您將寫入流量執行到 2 個節點而不是所有流量執行到 1 個節點時,寫入吞吐量可能會有所提高,但您不能期望太多。所有寫入仍然必須在所有節點上進行。

這對您意味著:集群中的節點越多,節點之間的網路通信就越需要證明所有 9 個節點可以一起送出或一起回滾。這種增加的通信會在節點之間進行 n(n-1) 次呼叫(其中 n 是節點數),肯定會成為單個INSERTUPDATE或的瓶頸DELETE。多語句交易變得更糟。這就是為什麼大多數 PXC/Galera 強調使用三個節點的例子。您可能會使用 5 個節點而僥倖,但您應該期望比 3 個節點更差的寫入性能。

您可能可以設置 3 個不同的 3 節點集群,並在循環複製中使用每個集群中的一個節點(請參閱我的文章MySQL 5.5 Replication to Galera/Percona XtraDB Cluster)。如果集群之間的 MySQL 複製中斷,這很容易造成腦裂情況。

結語

請堅持使用 3 節點集群。如果您使用 9 個節點,則必須接受跨區域的網路通信。如果是這樣,請嘗試使節點位於不同區域的東海岸,或者位於不同區域的西海岸。

另一種拓撲是一個 3 節點的 Galera 集群,外加 2 個普通的只讀從屬節點掛在每個 Galera 節點上。向 6 個從站中的任何一個發送非關鍵讀取請求;將寫入發送到 3 個集群節點中的任何一個。

無法擴展寫入的原因是所有寫入都必須寫入所有節點。基於行的複制(Galera 要求)有助於減輕負載。

寫入縮放的“真正”修復是分片。但是,這不適用於任意工作負載。

您願意討論您的查詢嗎(寫和讀);也許我們可以找到一些技術來幫助您處理負載。

引用自:https://dba.stackexchange.com/questions/104221