Windows-Server-2008
如何根據使用者的位置將使用者重定向到不同的伺服器?
我有一個使用 ASP.NET 開發的網站,我的數據庫是 MySQL。目前它託管在美國伺服器上。但是當我嘗試在印度附近訪問它時,動態內容載入速度太慢。這是可以接受的,因為請求必須到世界的另一端。在美國它真的很快。我已經用 cloudflare CDN 連接了這個站點。但是 CDN 對於靜態內容很有用。我的每一頁幾乎都有動態內容。
所以我想擴展這個網站。因此,如果請求來自美國,我想處理來自美國伺服器的請求,如果請求來自亞洲,我希望從亞洲伺服器處理。但請記住,無論它們被重定向到哪裡,兩台伺服器上的內容都應該相同。(兩台伺服器應該同步)
那麼如何實現這個架構呢?
Google、Facebook、雅虎如何做到這一點?他們如何在全球範圍內服務?我認為他們在每個大陸都有數據中心。它們如何相互同步?
除了@Gabriel-Talavera 的回答,我還要補充幾點:
- 網路路由以及地理負載平衡與不同伺服器之間的“數據同步”完全無關。它們是通過許多非常不同的技術解決的兩個問題。
由於您的問題的標題似乎集中在網路方面,我將重點關注第一部分(網路路由問題)。
從嚴格的網路角度來看,跨多個位置/數據中心的負載分佈可以通過“任播定址”來實現。可以在其他 SF 文章中檢索到有關任播的有用討論:
如您所見,小型ICT公司很難滿足要求。但是“全球”公司(如您在 OP 中提到的那些),採用它沒有問題。
作為旁注,我第一次聽說“任播”是多虧了CloudFlare 部落格文章,他們在其中討論了(…在許多其他事情中),如何也可以採用任播作為 D- 的對策DOS攻擊。