在英國和澳大利亞伺服器設置中執行數據庫繁重的 webapp
我正在從英國數據中心執行 web 應用程序。速度和預期一樣好。webapp 嚴重依賴數據庫。我想將 webapp 打開到澳大利亞和紐西蘭,但要保持伺服器的良好響應時間。
本質上,應用程序中的每個使用者都可以訪問儲存在數據庫中兩個表中的數據。每個使用者使用所述數據來生成他們自己的數據組合併儲存在數據庫中的其他表中。該應用程序的資產更新很少。
註冊的電子郵件在所有國家/地區都必須是唯一的。
根據我在這方面的有限知識,我相信有兩種選擇: A - 兩台主機之間的完整數據庫複製,一台在英國,一台在澳大利亞 B - 將數據從源主機英國定期復製到目標主機澳大利亞和紐西蘭。
然後離開域 1 - 理想情況下在域上是最好的,但是這需要一個路由伺服器來根據位置將流量引導到不同的伺服器,但這會增加響應時間 2 - 每個國家/地區的備用域直接路由到該國家/地區本地主機
我很感激我沒有在這裡重新發明輪子,但是像這樣的場景的標準協議是什麼?根據我的理解,cdn 服務更多地用於圖像和影片傳輸,我想這裡的基本問題是數據庫的等價物是什麼?
感謝您的幫助,約翰
您在這裡有幾個不同的問題,可能最好作為單獨的問題提供。首先是您應該如何建構您的多站點數據庫結構。第二個是您如何將使用者路由到您的伺服器。
對於數據庫問題,您可能只需要像多主複製這樣簡單的東西。對此沒有簡單的答案,因為需要考慮的變數太多。數據量、數據庫伺服器軟體的能力、兩個站點之間連接的可靠性、站點之間實際需要共享多少數據、數據是否需要始終完全相同或最終相同。 .
對於第二個問題,如果您的網站幾乎是完全動態的,CDN 可能不是一個好的選擇。CDN 不用於“圖像和影片傳遞”,它主要用於靜態內容傳遞(圖像和影片是其中的一個子集,任何未動態提供的網頁、javascript 文件、css 文件等)許多 CDN提供可以通過各種技巧加速動態內容的服務,但這不是您所追求的。
我知道 CDN 和大型組織可以處理這種情況的兩種主要方式。第一種是通過 DNS,使用某種機制來確定返回給客戶端的 IP 地址。這可能基於客戶端的 IP 地址,例如在地理定位數據庫或其他機制中查找,以確定將客戶端引導到的最佳位置。
第二種方法是使用任播。這裡的想法是,您從多個位置宣布完全相同的 IP 地址,並依靠標準的 Internet 路由將您帶到一個接近的站點(接近是相對於網路,而不是地理)。
如果您想听聽我的意見,請選擇一個與您想要服務的地點有良好連接的地點。例如,如果您只為英國和紐西蘭的人們提供服務,那麼美國的一個地點可能對兩者都足夠好。我不知道您的應用程序做了什麼,但如果幾毫秒的差異會對您的使用者產生有意義的影響,您可能需要重新考慮設計。從我在加利福尼亞州聖何塞工作的辦公桌上,到紐西蘭和澳大利亞都不到四分之一秒(< 250 毫秒)。