2017-08-23 133 views
0

我有2個MySQL數據庫實例,它們正在由Load Balancer處理。現在,Spring應用程序聯繫負載平衡器提出了大量請求。一些事務鎖定數據庫中的一行(獨佔)。在某些情況下,當我在1秒內發送100個請求時發生死鎖。有誰知道什麼會導致僵局?當然,只有當我發送鎖定數據庫中相同行的相同請求時纔會發生死鎖。兩個數據庫實例與負載平衡器不同步

enter image description here

這是系統現在的樣子。

+0

我會建議爲您的應用程序使用單個邏輯數據庫。如有必要進行分區。 –

+0

架構需要這樣做,因爲請求量很大(100-1000 req/sec)。也因爲這種方式我有複製,所以數據會更安全。 – alxbxbx

+0

盡你所能,但我不會使用這種架構。 –

回答

0

當你有大量的請求時,顯然兩個數據庫的同步並不是一個明智的想法。所以最好去一個DB,讓另一個DB成爲「奴隸」。這種情況下的最佳策略是我使用的故障轉移。

對於多個應用程序實例,不存在複製問題。但是對於數據庫來說,同步是個大問題。正如@Tim Biegeleisen所說,最好使用單一數據庫。