Microsoft Azure 的負載平衡器的Session Sticky

Microsoft Azure 的負載平衡器是一種 Layer-4負載平衡器。Microsoft Azure 負載平衡器經過針對給定輸入端點上接收到的流量計算哈希函數,在一組可用的服務器(虛擬機)之間分配負載。計算哈希函數是爲了使來自同一鏈接(TCP 或 UDP)的全部數據包最終位於同一臺服務器上。Microsoft Azure 負載平衡器採用 5個信息(源 IP、源端口、目標 IP、目標端口、協議類型)計算用於將流量映射到可用服務器的哈希函數。咱們選擇的哈希函數使到服務器的鏈接的分佈很是隨機。可是,根據流量模式,不一樣的鏈接可能映射到同一臺服務器。(請注意,到服務器的鏈接的分佈不是輪詢的,也不像其餘文章或博客中誤稱的那樣具備請求隊列)。哈希函數的基本前提是得到了大量來自不一樣客戶端的請求,這樣請求就能夠跨服務器完美分配。tomcat

 

Azure負載均衡目前支持三種分發模式:一、五元組;二、三元組;三、二元組。在portal上設置的負載均衡默認是採用五元組(源 IP、源端口、目標 IP、目標端口、協議類型)來計算哈希值。若是採用二元組(源IP、目的IP)的分發模式,來自同一個客戶端的鏈接,將會分發到均衡集中的同一臺server上。可是請注意,這樣會致使請求不能平均分發的狀況,由於位於同一個NAT設備後不一樣的客戶端請求將被當作同一個負載進行分配。三元組是採用source IP, Destination IP, protocol來計算哈希值。它比二元組增長了一個協議的區分。服務器

 

關於修改負載均衡的分發模式,請您參見以下:負載均衡

查看虛擬機終結點信息,get-azurevm -ServiceName fuzl -Name fuzlc66 |Get-AzureEndpointtcp

 

將分發方式設置爲SourceIPProtocol:函數

Set-AzureLoadBalancedEndpoint -ServiceName "fuzl" -LBSetName "tomcatLB" -Protocol tcp -LocalPort 8080 -ProbeProtocolTCP -ProbePort 8080 –LoadBalancerDistribution "sourceIPProtocol"spa

   

命令: Set-AzureLoadBalancedEndpoint -ServiceName "xxxx" -LBSetName "xxxx" -Protocol tcp -LocalPort xx -ProbeProtocolTCP -ProbePort xx –LoadBalancerDistribution "sourceIP"cdn

 

參考:server

https://azure.microsoft.com/en-us/blog/azure-load-balancer-new-distribution-mode/blog

https://azure.microsoft.com/en-us/blog/azure-load-balancer-new-distribution-mode/?cdn=disable隊列

相關文章
相關標籤/搜索