Listener
關於天藍色(IaaS)的內部和外部負載均衡器偵聽器有什麼區別
根據下面的 MSDN 部落格,我看到有 2 種方法可以創建負載均衡器偵聽器。
但我沒有找到需要使用它們的確切場景?我希望外部應用程序連接到我的高度可用的 SQL 伺服器(AlwaysOn)。我應該配置哪個負載均衡器?
配置集群後,您將需要創建用於所有客戶端訪問的內部負載均衡器 (ILB)。連接到 SQL Server 的客戶端將需要連接到 ILB,而不是直接連接到群集 IP 地址。如果您此時嘗試直接連接到集群,您會看到無法從任何遠端系統連接到集群。此時甚至 SQL Server Management Studio 也無法直接連接到集群
更新如何配置它
我正在使用下面的腳本來創建內部負載均衡器並且它成功了。
// Define variables $ServiceName = "XYZ" $AGNodes = "ABC01","ABC02" $SubnetName = "MYSUBNETNAME" $ILBStaticIP = "10.249.XXX.XXX" $ILBName = "AGListenerLB" // Create the ILB Add-AzureInternalLoadBalancer -InternalLoadBalancerName $ILBName -SubnetName $SubnetName -ServiceName $ServiceName -StaticVNetIPAddress $ILBStaticIP // Configure a load balanced endpoint for each node in $AGNodes using ILB ForEach ($node in $AGNodes) { Get-AzureVM -ServiceName $ServiceName -Name $node | Add- AzureEndpoint -Name "ListenerEndpoint" -LBSetName "ListenerEndpointLB" -Protocol tcp -LocalPort 1433 -PublicPort 1433 -ProbePort 59999 -ProbeProtocol tcp -ProbeIntervalInSeconds 10 -InternalLoadBalancerName $ILBName -DirectServerReturn $true | Update-AzureVM }
一旦上面的腳本成功,那麼我們需要執行下面的腳本
# Define variables $ClusterNetworkName = "Cluster Network 1" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name) $IPResourceName = "DEVAG_10.249.XXX.XXX" # the IP Address resource name $ILBIP = “10.249.XXX.XXX” # the IP Address of the Internal Load Balancer (ILB) Import-Module FailoverClusters
如果您使用的是 Windows Server 2012 或更高版本,請使用 Get-Cluster Resource 命令。如果您使用的是 Windows Server 2008 R2,請使用 cluster res 命令。這兩個命令都被註釋掉了。選擇適用於您的環境的選項並刪除行首的 # 以將註釋轉換為可執行的程式碼行。
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{"Address"="$ILBIP";"ProbePort"="59999";"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0} # cluster res $IPResourceName /priv enabledhcp=0 address=$ILBIP probeport=59999 subnetmask=255.255.255.255
外部 - 使用託管虛擬機的雲服務的公共虛擬 IP 地址。當您需要從虛擬網路外部(包括網際網路)訪問偵聽器時使用,即面向公眾
內部 - 使用內部負載平衡 (ILB) 和偵聽器的專用地址。當您僅從同一虛擬網路中訪問偵聽器時使用。這包括混合場景中的站點到站點 VPN,即不面向公眾