Azure 负载平衡器新分发模式
Yves
Pitsch Azure 网络首席项目经理
Azure负载平衡器是一种第四层(TCP、UDP)类型的负载平衡器,它可以将传入流量分发到云服务中正常运行的服务实例上,或者分发到负载平衡器集内所定义的虚拟机上。
元组(源 IP、源端口、目标 IP、目标端口、协议类型)哈希。这种算法只能在传输会话中提供亲和性。同一个
TCP 或 UDP
会话中的数据包将被导向到负载平衡端点后的同一个数据中心 IP (DIP)实例上。当客户端关闭并重新打开连接或者从同一个源 IP开始新的会话时,源端口就会发生变化并会导致流量传输到不同的
DIP端点。
我们引入了一种称为源 IP
关联(也称为会话关联或客户端 IP
关联)的新分发模式。Azure
负载平衡器可以配置为使用 2
元组(源
IP、目标 IP、协议)将流量映射到可用服务器上。使用源 IP关联,同一客户端计算机上发起的连接都会转到同一个
DIP端点。
源 IP 关联解决了Azure 负载平衡器和 RD 网关不兼容的问题。现在您可以在单个云服务中构建
RD 网关场。
另一个使用场景是媒体上传,在这种场景下,实际的数据上传通过 UDP实现,而控制层则通过 TCP实现:
· 客户端先向负载平衡公共地址发起 TCP会话,然后被导向至特定 DIP,这个通道将保持活动状态,用于监控连接状况。
· 同一个客户端计算机向同一个负载平衡公共端点发起新的 UDP会话,这里我们想要看到的是,这个连接也被导向至与前面 TCP连接相同的
DIP 端点,使媒体上传能够以高吞吐量执行的同时也能够维持 TCP控制通道。
请注意,如果负载平衡集发生了变化(删除或添加虚拟机),客户端请求的分发会重新计算。如果现有客户端会话有新的连接,您不能确保这些新的连接会发送至同一个服务器上。此外,使用源 IP关联分发模式可能会导致流量分布不均。使用代理的多个客户端可能会被视为一个唯一的客户端应用程序。
场景
· 使用 PowerShell或服务管理 API为虚拟机上的端点配置负载平衡器分发
· 使用 PowerShell或服务管理 API为负载平衡端点集配置负载平衡器分发。
· 通过服务模型为 Web/Worker
Role配置负载平衡器分发。
PowerShell
示例
月版)
为虚拟机添加 Azure端点并设置负载平衡器分发模式
| Get-AzureVM -ServiceName"mySvc" -Name"MyVM1" | Add-AzureEndpoint -Name"HttpIn" -Protocol"tcp" - - –LoadBalancerDistribution “sourceIP”|Update-AzureVM |
要使用 2 元组(源 IP、目标 IP),LoadBalancerDistribution应设置为sourceIP;要使用
3 元组(源 IP、目标 IP、协议),LoadBalancerDistribution应设置为sourceIPProtocol;如果您想要使用默认的
5 元组负载平衡行为,LoadBalancerDistribution应设置为none。
检索端点负载平衡器分发模式配置
PS C:\> Get-AzureVM –ServiceName “MyService” –Name “MyVM”
| Get-AzureEndpoint
VERBOSE::: PM -CompletedOperation:GetDeployment
LBSetName :MyLoadBalancedSet
Name :HTTP
Protocol : tcp
Vip :65.52.xxx.xxx
ProbePath :
ProbeProtocol : tcp
EnableDirectServerReturn :False
Acl :{}
InternalLoadBalancerName :
LoadBalancerDistribution : sourceIP
元组算法
在负载平衡端点集上设置分发模式
如果端点是负载平衡端点集的一部分,分发模式必须在负载平衡端点集上设置
Set-AzureLoadBalancedEndpoint -ServiceName"MyService" -LBSetName"LBSet1"
- -
–LoadBalancerDistribution"sourceIP"
云服务示例
月发布)更新您的云服务
云服务的端点设置在 .csdef中进行。要更新云服务部署的负载平衡器分发模式,必须进行部署升级。
以下是端点设置的 .csdef更改示例:
<WorkerRole name="worker-role-name"vmsize="worker-role-size"enableNativeCodeExecution="[true|false]">
<Endpoints>
<InputEndpoint name="input-endpoint-name"protocol="[http|https|tcp|udp]"localPort="local-port-number"port="port-number"certificate="certificate-name"loadBalancerProbe="load-balancer-probe-name"loadBalancerDistribution="sourceIP"/>
</Endpoints>
</WorkerRole>
<NetworkConfiguration>
<VirtualNetworkSite
name="VNet"/>
<AddressAssignments>
<InstanceAddress
roleName="VMRolePersisted">
<PublicIPs>
<PublicIP name="public-ip-name"idleTimeoutInMinutes="timeout-in-minutes"/>
</PublicIPs>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>
API 示例
要进行负载平衡器分发配置,可以使用服务管理 API
确保将添加的 x-ms-version头设置为 2014-09-01或更高版本。
更新部署中指定负载平衡集的配置
请求示例
POSThttps://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name>?comp=UpdateLbSet
x-ms-version:--
Content-Type: application/xml
<LoadBalancedEndpointList xmlns="http://schemas.microsoft.com/windowsazure" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<InputEndpoint>
<LoadBalancedEndpointSetName> endpoint-set-name </LoadBalancedEndpointSetName>
<LocalPort> local-port-number </LocalPort>
<Port> external-port-number </Port>
<LoadBalancerProbe>
<Port> port-assigned-to-probe </Port>
<Protocol> probe-protocol </Protocol>
<IntervalInSeconds> interval-of-probe </IntervalInSeconds>
<TimeoutInSeconds> timeout-for-probe </TimeoutInSeconds>
</LoadBalancerProbe>
<Protocol> endpoint-protocol </Protocol>
<EnableDirectServerReturn> enable-direct-server-return </EnableDirectServerReturn>
<IdleTimeoutInMinutes>idle-time-out</IdleTimeoutInMinutes>
<LoadBalancerDistribution>sourceIP</LoadBalancerDistribution>
</InputEndpoint>
</LoadBalancedEndpointList>
要使用 2 元组关联,LoadBalancerDistribution的值应是sourceIP;要使用
3 元组关联,LoadBalancerDistribution的值应是sourceIPProtocol;要无关联(即
5 元组),LoadBalancerDistribution的值应是none
响应
HTTP/Accepted
Cache-Control:no-cache
-)Microsoft-HTTPAPI/2.0
x-ms-servedbyregion:ussouth2
x-ms-request-id:9c7bda3e67c621a6b57096323069f7af
:: GMT
如果你有任何疑问,欢迎访问MSDN社区,由专家来为您解答Windows
Azure各种技术问题,或者拨打世纪互联客户服务热线400-089-0365/010-84563652咨询各类服务信息。
本文翻译自:http://azure.microsoft.com/blog/2014/10/30/azure-load-balancer-new-distribution-mode/。
Azure 负载平衡器新分发模式的更多相关文章
- 新功能:Azure 负载平衡器的空闲超时现可配置了
Yves Pitsch Azure 网络首席项目经理 我们很高兴地宣布,Azure负载平衡器现在可以为云服务和虚拟机提供可配置的 TCP空闲超时支持.要配置此功能,可以使用服务管理 API.Power ...
- Microsoft Azure 的负载平衡器的Session Sticky
Microsoft Azure 的负载平衡器是一种 Layer-4负载平衡器.Microsoft Azure 负载平衡器通过针对给定输入端点上接收到的流量计算哈希函数,在一组可用的服务器(虚拟机)之间 ...
- Microsoft Azure 负载平衡服务
Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...
- Envoy如何打败Linkerd成为L7负载平衡器的最佳选择?
本文转自:http://www.servicemesh.cn/?/article/41 作者:MIKE WHITE 翻译:姚炳雄 原文:Using Envoy to Load Balance gRPC ...
- 20.LVS负载均衡群集—NAT模式实例
LVS负载均衡群集-NAT模式实例 目录 LVS负载均衡群集-NAT模式实例 群集引用概述 群集的含义 问题 解决方法 企业群集分类 群集的三种类型 负载均衡群集(Load Balance Clust ...
- 开源负载均衡通讯分发器(LB dispatcher) - G5
from:http://bbs.csdn.net/topics/390753043 1.开发背景今天和系统运维的老大聊天,谈到一直在用的F5,行里对其评价为价格过高.功能复杂难懂,反正印象不是很好,使 ...
- Azure 12 月新公布
Azure 12 月新发布:人脸识别 API 推出更新,媒体服务当前几种计量方式的调整,Azure Media Redactor 提供预览, Azure 密钥保管库开始计费, 和 Azure 支付方式 ...
- Azure 10月新公布
Azure 10月新发布:F 系列计算优化实例,认知服务,媒体服务流式处理单元更名,Azure 镜像市场,FreeBSD 适用于Azure 虚拟机的全新 F 系列计算优化实例 Azure 虚拟机的全新 ...
- Azure 7 月新公布
Azure 7月新发布:Cosmos DB,事件中心捕捉功能,Hybrid Connections,流量管理器快速故障转移功能. 您现有的 DocumentDB 资源现已作为 Azure 门户上 Az ...
随机推荐
- Asp.Net MVC过滤器小试牛刀
在上学期间学习的Asp.Net MVC,基本只是大概马马虎虎的了解,基本处于知其然而不知其所以然.现在到上班,接触到真实的项目,才发现还不够用,于是从最简单的过滤器开始学习.不得不说MVC的过滤器真是 ...
- Js 获取当前时间
Js获取当前日期时间及其它操作 var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整 ...
- P3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二
这题..思维上远没有上一题复杂,是一个裸的RMQ..利用倍增就可以解决了. var n,q,i,j,f,t,c:longint; a:array[..,..] of longint; function ...
- Xcode8 重新配置 CocoaPods -替换阿里源
一.CocoaPods是什么? CocoaPods是一个负责管理iOS项目中第三方开源库的工具.CocoaPods的项目源码在Github上管理.该项目开始于2011年8月12日,在这两年多的时间里, ...
- MoonWarriors-lua——《雷电战机》游戏-Lua移植版
MoonWarriors是一个使用Cocos2d-Html5引擎开发的类似雷电战机的游戏Demo,源代码发布在Cocos2d-x官网的引擎示例当中.MoonWarriors-lua是为了学习Cocos ...
- HTTP verb的安全性和幂等性
Http协议规定了不同方法的安全特性和幂等特性,作为服务提供者的服务器必需为客户端提供这些特性. 安全性,仅指该方法的多次调用不会产生副作用,不涉及传统意义上的“安全”,这里的副作用是指资源状态.即, ...
- 写作技巧--Simile明喻
- 汇编Ring 3下实现 HOOK API
[文章标题]汇编ring3下实现HOOK API [文章作者]nohacks(非安全,hacker0058) [作者主页]hacker0058.ys168.com [文章出处]看雪论坛(bbs.ped ...
- CrackMe_001
本系列文章的目的是从一个没有任何经验的新手的角度(其实就是我自己),一步步尝试将160个CrackMe全部破解,如果可以,通过任何方式写出一个类似于注册机的东西. 其中,文章中按照如下逻辑编排(解决如 ...
- valgrind基本使用
1.valgrind是一个内存检测工具,类似的还有purify,insure++等 2.测试文件test.c test.c : main(){ int* a=new int[100]; return ...