Load-Balancing
Azure 中的內部故障轉移負載平衡
我在 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,因此只有您自己的應用程序可以與指定端點上的數據庫連接。或者您可以在您的應用程序中配置故障轉移 - 沒有負載平衡器,因為您不需要負載平衡(只是故障轉移)。