2016-06-29 272 views
-1

我開發了一個發送短信的API目前有三個MySql表在同一臺服務器上運行(sms_account,sms_number和sms_transaction)。擴展web應用程序

我想使用haproxy來平衡負載並提高性能來拆分多個Web服務器之間的請求,但我真的不知道如何處理它的數據庫部分。我知道我可以在主 - 主方案中創建一個單獨的數據庫集羣,但想知道是否可以做得更好。

我想過有一個主要的集羣數據庫包含與web服務器相同的數據庫。 sms_account和sms_number表只能在這一個上更新,並且這個可以更新web服務器sms_account和sms_number表,因爲這些表不會經常更改。然後我認爲每個web服務器/ mysql實例都可以定期用每個sms_transaction表中的記錄更新master數據庫。

這聽起來有點混亂,但認爲這種方式的數據庫負載將非常低,因爲所有的Web服務器數據庫都將保持小而快,主要可用於計費。

我只想對設計提出第二意見。我認爲在故障情況下,任何Web服務器都可以獨立於其他服務器繼續工作。

Web服務器從字面上記錄事務,就是這樣。沒有複雜的查詢。我可以從主數據庫做報告等。

很多謝謝

+0

羅斯嗨,你確定你需要擴展的MySQL呢? –

+0

可能不會,我會使用多個網絡節點和單個數據庫服務器來提高性能嗎?儘管未來有必要制定計劃是很好的。 – Ross

回答

0

「定期更新」位的問題始終是一致性。

製作自己的合併算法是可能的,但最終會出現錯誤處理混亂的道路。

我真的建議你等待MySQL的擴展,直到你需要爲止。保持你的數據訪問代碼相當分離,你可以隨時重構,如果/當你需要。

一旦你需要重構,你是一個完美的主/從站從站配置..

相關問題