Load-Balancing

Azure 中的內部故障轉移負載平衡

  • July 2, 2015

我在 Azure 中部署了一個 MongoDB 集群。通常,一個 MongoDB 集群至少有幾個 mongo 路由器實例 (mongos),這是應用程序應該連接的地方(應用程序也託管在 azure 中)。

我想“故障轉移”平衡從應用程序到 mongodb 實例的流量。我的意思是我想將我的應用程序連接到一個實例,如果它失敗(並且僅當它失敗)到另一個實例。我不希望我的流量與循環平衡:

  • mongorouter1.myinternaldomain.dom:27017:這應該始終是端點
  • mongorouter2.myinternaldomain.dom:27017:只有當第一個失敗時,這應該是端點。
  • mongorouter3.myinternaldomain.dom:27017:這應該是僅目前一個都失敗時的端點。

我看到這種事情是通過流量管理器或 Azure 中的 ILB(內部負載均衡器)進行管理的。但是我有一個問題,因為據我了解故障轉移平衡僅適用於流量管理器,並且 ILB 僅允許循環。

因為我的應用程序也在 Azure 中,所以我不想將 mongodb 埠公開,所以我知道我不能使用流量管理器,它是允許故障轉移負載平衡的服務。

正確的方法應該是什麼?

在 Azure 中使用軟體負載均衡器進行故障轉移的唯一方法是使用流量管理器。您可以設置 ACL,因此只有您自己的應用程序可以與指定端點上的數據庫連接。或者您可以在您的應用程序中配置故障轉移 - 沒有負載平衡器,因為您不需要負載平衡(只是故障轉移)。

引用自:https://serverfault.com/questions/696905