Mysql
MySQL 複製還是 MySQL 集群?
目前,我在第一台伺服器上執行帶有 MySQL 的 Rails 3 Web 應用程序,在第二台伺服器上執行 Rails API 應用程序,從第一台伺服器連接到 MySQL 數據庫。
我不高興 API 依賴於第一台伺服器的數據庫並決定使用複制/集群,但我不確定什麼是我的情況的最佳選擇?
- 主從複製,我們的api不是只讀的,它也寫了很多資訊,所以看起來沒有那麼亮。
- Master - 主複製,太害怕數據不一致,因為它可能會失去同步。
- MySQL 集群 - 這對我來說似乎是最好的選擇,但是我不確定它是否值得只使用 2 個節點進行集群?
如果一個節點宕機了,這是否意味著一旦它上線並且將消耗第二個節點作為捐助者,整個集群將不可用?我怎樣才能避免這種情況?
你認為我在這裡最好的選擇是什麼?
所以你不能只集群 2 個節點。你需要一個仲裁,否則你可能會失去一台伺服器並出現腦裂,然後你不確定哪個節點有什麼數據。
您可以擁有 2 個數據伺服器和一個不儲存數據而只是一個集群成員進行投票的第三個投票伺服器。
我通常做的是有一個 mysql 集群,讓我的所有客戶端在本地連接到 haproxy,haproxy 決定將連接發送到哪裡,並將所有寫入 100% 的時間發送到單個伺服器,直到它死掉,然後它轉到備份伺服器。