0

我在多個區域中的Azure中有一個網站。除了webservers外,每個區域還有一個存儲帳戶,因爲用戶可以上傳文件。在Azure雲中使用反向代理作爲負載均衡器的延遲

我正在使用流量管理器將用戶重定向到最佳區域。但我對此並不滿意......它不支持會話親和力。 我可以使用應用程序網關,但這也不是我想要使用應用程序網關的原因,它也可能發生在Session1中,用戶着陸在Region1上,而在Session2中,他着陸在Region2上。用戶將上傳區域1和2中的文件,並且每次用戶登錄不同區域時,我都必須在區域之間傳輸它們。

因此,我想創建自己的流量管理器。我將創建一個帶有web服務器的cloudservice,它使用自定義的arr重寫提供程序,並根據他的geoip重定向用戶。

我擔心的唯一的事情就是吞吐量...如果我理解正確的反向代理在所有地區的所有網站的所有流量都會經過這個代理。 該網站也有流式傳輸的可能性,我們大量使用websockets進行客戶端和服務器之間的通信。

這種方法是否可以通過自定義arr進行縮放?如果所有流量都通過這一個雲服務?我相信我可以創建多個處理arr請求的web服務器,但是例如有什麼延遲問題?

如果我的流量管理cloudservice例如在北歐,然後是來自巴西的用戶。 我們在巴西有一個地區,但如果所有的交通都經過northeurope的代理,那麼延遲將是災難性的,我猜想在巴西有一個地區的所有好處都將消失。

總之:我想將用戶重定向到一個特定的區域中根據自己的geoip的Azure和保持整個事情可擴展性和高性能的多儘可能:)。 對此最好的方法是什麼?

感謝您的幫助! BR, 代謝

回答

0

Azure流量管理器在DNS級別工作。它使用來自您的DNS查詢的IP數據來提供DNS響應,將該用戶的流量引導到您最近的Azure區域(如果使用'Performance'流量路由方法)。用戶然後直接連接到該地區的服務。

的優點是流量管理器,因此不會從你描述的問題的困擾,因爲它不是你的最終用戶業務的代理。

的缺點是,由於流量管理器只能看到DNS流量,而不是TCP/HTTP流量,它無法提供會話親。

最好的辦法來解決這個問題是使用流量管理器的流量引導到離你最近的服務端點,然後實現在應用層面(或代理,因爲你正在做的)會話親和力。

+0

好吧,假設我使用流量管理器將用戶重定向到一個區域。我如何設置會話親和力呢?正如您所提到的,流量管理器不支持它,因此流量管理器會獨立處理每個請求,並且可能發生請求1落在區域1中,請求2落在區域2(實際上現在有時會發生)。那麼會話親和力不會幫助我(據我瞭解),因爲region2中的服務器不瞭解region1中的用戶會話。謝謝你的幫助! – metabolic