Windows Azure如何對內部伺服器實現負載平衡

來源:互聯網
上載者:User
關鍵字 Azure Azure 負載平衡 內部伺服器

我從 2009 年開始服務于 Windows HTTP://www.aliyun.com/zixun/aggregation/13357.html">Azure。 期間我有幸為各種規模的組織的眾多客戶構建了解決方案。 隨著解決方案的增長,我常常需要對內部伺服器進行負載平衡。 發表本文時,Windows Azure 還沒有應對負載平衡的內置解決方案。 但是,通過對公共端點引進存取控制清單 (ACL),我能夠使用受支援的標準 Windows Azure 服務和元件來實現負載平衡。

在我的示例中,我想對運行于虛擬機器上的一對 Internet 資訊服務 (IIS) 伺服器進行負載平衡,這對伺服器充當通過使用 ASP.NET Web API 暴露的內部服務的外觀。 通過創建每個 IIS 伺服器共用的公共負載平衡端點,我能夠通過使用 Windows Azure 中的標準負載平衡器(您可通過此平衡器訪問所有公共端點),在這些伺服器上對我的查詢進行負載平衡。

我擔心 Internet 上的任何人都能訪問我的服務。 但通過向端點應用 ACL,我可以限制為僅自己的雲服務具有存取權限。 ACL 添加了限制,使得只有來自我的雲服務內的查詢才能訪問負載平衡的端點,如下圖所示。

好極了! 這真是太容易了。 於是我花了一些時間考慮我的決定的影響,以下是我想到的優點和缺點:

優點

我在ASP.NET Web API 層上實現了負載平衡,而無需尋求合作夥伴解決方案。 我使用了 Microsoft 支援的服務和功能,從而實現了能準確完成我想執行的操作的受支援結構。 我與產品團隊討論了我的解決方案,他們贊同我的解決方案是目前受支援的實施方案,因為他們當前還不提供此功能。

缺點

目前可以在 Windows Azure 中的雲服務上創建的公共埠數為 25 個,這也算作其中一個。 所有通過單一雲服務進行的通信都將來自于相同的公共 IP 位址。 這意味著所有用戶端將共用 TCP 施加的同一 64K 連接限制。 此限制適用于從相同源埠和源 IP 位址到相同目標埠和目標 IP 位址的連接。 僅支援將 ACL 用作基礎結構即服務 (IaaS) 解決方案,因此我失去了平臺即服務 (PaaS) 解決方案。

緩解

與任何有缺點的解決方案一樣,總是能夠找到緩解其缺點的創新方法。 我思考了前兩個缺點,它們皆是由於對雲服務施加的限制(例如,公共埠最大數量和每個雲服務一個 IP 位址)所致。 我意識到可以將虛擬機器分散到多個雲服務。 通過使用虛擬網路,我可以將其拆分並保持通信功能。 但是,這要求在 ACL 中配置更多 IP 位址。

逐步解決方案

接下來我將說明我如何在兩台虛擬機器上設置負載平衡解決方案...

開始時我完整配置了兩個用於 IIS 的虛擬機器,然後使用 Windows PowerShell 創建負載平衡的端點,並在每個端點上分配了一個 ACL。

轉到包含虛擬機器的雲服務的儀表板視圖,我可以快速找到我需要允許的公共 IP 位址。 如以下儀表板視圖所示,我的雲服務的 IP 位址為 137.135.81.135。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.