新功能:Azure 负载平衡器的空闲超时现可配置了
Yves
Pitsch Azure 网络首席项目经理
我们很高兴地宣布,Azure负载平衡器现在可以为云服务和虚拟机提供可配置的
TCP空闲超时支持。要配置此功能,可以使用服务管理 API、PowerShell或服务模型
概述
在默认配置下,Azure
负载平衡器的“空闲超时”设置是 4分钟。
这意味着,如果 tcp
或 http 会话不活动的时间超过这个超时值,客户端和服务之间的连接将无法保证是否可以维持下去。
当连接关闭时,客户端应用程序会显示如下错误消息“The underlyingconnection was closed: A connection that was expected to be kept alive wasclosed by the server”(基础连接已关闭:应该保持连接状态的连接已被服务器关闭)。
让连接长时间保持连接状态的常见做法是使用TCP Keep-alive(此处可找到
.NET 示例)。在连接检测不到活动时将自动发送数据包。通过保持持续的网络活动,空闲超时值将永远无法达到,连接也就可以长时间保持。
虽然 TCP Keep-alive对于电池量不是约束因素的场景非常有效,但通常对于移动应用却不是一种有效的选择。在移动应用中使用 TCPKeep-alive很可能会更快耗尽设备电量。
为了支持此类场景,我们增加了对可配置空闲超时的支持。您现在可以将空闲超时设置为 4到 30分钟之间。该设置仅对入站连接有效。
场景
通过 PowerShell
或服务管理 API 为虚拟机上的端点配置
TCP 超时
通过 PowerShell
或服务管理 API 为负载平衡端点集配置
TCP 超时。
通过服务模型为 Web/Worker Role配置
TCP 超时。
PowerShell
示例
确保下载并安装最新的 Azure PowerShell
将实例级公共 IP的 TCP超时配置为
15 分钟。
| Set-AzurePublicIP –PublicIPName webip –VM MyVM -IdleTimeoutInMinutes 15 |
IdleTimeoutInMinutes 是可选的。如果不设置,默认的超时是4分钟。现在该值可以设置为
4到
30 分钟之间。
在虚拟机上创建 Azure
端点时设置空闲超时
| Get-AzureVM -ServiceName "mySvc" -Name "MyVM1" | Add-AzureEndpoint -Name "HttpIn" -Protocol "tcp" -PublicPort 80 -LocalPort 8080 -IdleTimeoutInMinutes 15| Update-AzureVM |
检索空闲超时配置
PS C:\> Get-AzureVM –ServiceName “MyService” –Name “MyVM” | Get-AzureEndpoint
VERBOSE:6:43:50 PM - Completed Operation:Get Deployment
LBSetName :MyLoadBalancedSet
LocalPort :80
Name :HTTP
Port :80
Protocol : tcp
Vip :65.52.xxx.xxx
ProbePath :
ProbePort :80
ProbeProtocol : tcp
ProbeIntervalInSeconds :15
ProbeTimeoutInSeconds :31
EnableDirectServerReturn :False
Acl :{}
InternalLoadBalancerName :
IdleTimeoutInMinutes :15
在负载平衡端点集上设置 TCP超时
如果端点是负载平衡端点集的一部分,TCP超时必须在负载平衡端点集上设置
| Set-AzureLoadBalancedEndpoint -ServiceName "MyService" -LBSetName "LBSet1" -Protocol tcp -LocalPort 80 -ProbeProtocolTCP -ProbePort 8080 -IdleTimeoutInMinutes 15 |
云服务示例
您可以使用Azure SDK for .NET 2.4更新云服务
云服务的端点设置在 .csdef中进行。因此,要更新云服务部署的 TCP超时,必须进行部署升级。例外情况是仅为公共
IP指定 TCP超时的情况。公共 IP设置位于
.cscfg中,这些设置可以通过部署更新和升级进行更新。
端点设置的 .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" idleTimeoutInMinutes="tcp-timeout" />
</Endpoints>
</WorkerRole>The .cscfg changes for the timeout setting on Public IPs are:
<NetworkConfiguration>
<VirtualNetworkSite name="VNet"/>
<AddressAssignments>
<InstanceAddress roleName="VMRolePersisted">
<PublicIPs>
<PublicIP name="public-ip-name" idleTimeoutInMinutes="timeout-in-minutes"/>
</PublicIPs>
</InstanceAddress>
</AddressAssignments>
</NetworkConfiguration>
API 示例
要进行 TCP
空闲超时配置,可以使用服务管理 API
确保将添加的 x-ms-version头设置为 2014-06-01或更高版本。
更新部署中所有虚拟机上特定负载平衡输入端点的配置
请求
| POST https://management.core.windows.net/<subscription-id>/services/hostedservices/<cloudservice-name>/deployments/<deployment-name> |
响应
<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>
<Path>path-of-probe</Path>
<Port>port-assigned-to-probe</Port>
<Protocol>probe-protocol</Protocol>
<IntervalInSeconds>interval-of-probe</IntervalInSeconds>
<TimeoutInSeconds>timeout-for-probe</TimeoutInSeconds>
</LoadBalancerProbe>
<LoadBalancerName>name-of-internal-loadbalancer</LoadBalancerName>
<Protocol>endpoint-protocol</Protocol>
<IdleTimeoutInMinutes>15</IdleTimeoutInMinutes>
<EnableDirectServerReturn>enable-direct-server-return</EnableDirectServerReturn>
<EndpointACL>
<Rules>
<Rule>
<Order>priority-of-the-rule</Order>
<Action>permit-rule</Action>
<RemoteSubnet>subnet-of-the-rule</RemoteSubnet>
<Description>description-of-the-rule</Description>
</Rule>
</Rules>
</EndpointACL>
</InputEndpoint>
</LoadBalancedEndpointList>
如果你有任何疑问,欢迎访问MSDN社区,由专家来为您解答Windows
Azure各种技术问题,或者拨打世纪互联客户服务热线400-089-0365/010-84563652咨询各类服务信息。
本文翻译自:http://azure.microsoft.com/blog/2014/08/14/new-configurable-idle-timeout-for-azure-load-balancer/
新功能:Azure 负载平衡器的空闲超时现可配置了的更多相关文章
- Azure 负载平衡器新分发模式
Yves Pitsch Azure 网络首席项目经理 Azure负载平衡器是一种第四层(TCP.UDP)类型的负载平衡器,它可以将传入流量分发到云服务中正常运行的服务实例上,或者分发到负载平衡器集内所 ...
- Microsoft Azure 的负载平衡器的Session Sticky
Microsoft Azure 的负载平衡器是一种 Layer-4负载平衡器.Microsoft Azure 负载平衡器通过针对给定输入端点上接收到的流量计算哈希函数,在一组可用的服务器(虚拟机)之间 ...
- Microsoft Azure 负载平衡服务
Microsoft Azure 为在其中托管的虚拟机(IaaS) 和云服务(PaaS) 提供负载平衡服务.负载平衡支持应用程序伸缩,并且提供应用程序故障恢复以及其他优势. 可以通过以下方式访问负 ...
- ceph luminous 新功能之内置dashboard 之 mgr功能模块配置
前言 ceph luminous版本新增加了很多有意思的功能,这个也是一个长期支持版本,所以这些新功能的特性还是很值得期待的,从底层的存储改造,消息方式的改变,以及一些之前未实现的功能的完成,都让ce ...
- 新功能:Azure Traffic Manager 嵌套配置文件
Jonathan Tuliani Azure 网络 - DNS 和 Traffic Manager 项目经理 我们很高兴地宣布,Azure Traffic Manager 支持 Traffic Ma ...
- MySQL Database on Azure新功能
本月中国版的MySQL Database on Azure发布了两项新功能: 1.主从复制——只读实例 在这之前Azure上的MySQL数据库也是支持主从复制的,但是只能作为on-premises部署 ...
- VM Depot 新功能:直接通过 Windows Azure 管理门户部署虚拟机
发布于 2014-05-09 作者 陈 忠岳 想要尝试 VM Depot 上数以百计的各类开源虚拟机,却因为复杂的命令行操作而感到烦恼?微软开放技术想您所想,及时推出 VM Depot 最新功能 ...
- 初识 MySQL 5.6 新功能、参数
摘要: 继上一篇的文章 初识 MySQL 5.5 新功能.参数 之后,现在MySQL5.6 针对 MySQL5.5 各个方面又提升了很多,特别在性能和一些新参数上面,现在看看大致提升了哪些方面(后续不 ...
- Atitit.linux 内核 新特性 新功能
Atitit.linux 内核 新特性 新功能 1. Linux 3.2内核新特性 2012-02-12 22:41:471 1.1. EXT4:支持更大的块2 1.2. BTRFS:更快的数据清理 ...
随机推荐
- C# 返回json结果集,js日期格式化
asp.net mvc返回json结果集 return Json(new { total = totalCount, rows = result }, JsonRequestBehavior.Allo ...
- Linux VM 设置静态ip地址上网
因为是路由器共享上网,VM每次都是通过DHCP方式自动获取ip地址,连接Linux VM时ip地址经常变,很麻烦.现在把VM设置静态ip的方法总结一下,以免以后忘了. 1. VM上网方式设置为桥接. ...
- Oracle查看用户所在表空间
查看当前用户所在表空间 select username,default_tablespace from user_users; 修改用户默认表空间 alter user 用户名 default tab ...
- linux常用命令及安装软件命令
1.查看操作系统是33位还是64最简单的方法 getconf LONG_BIT 或者 uname -a 2.常用命令 2.1基本操作 clear 清屏 2.2安装命令 rpm(redhat packa ...
- EvnetBus
领域事件(EvnetBus) 文档目录 本节内容: EventBus 注入 IEventBus 获取默认实例 定义事件 预定义事件 处理完异常 实体修改 触发事件 处理事件 处理基类事件 处理程序 ...
- xcode 6.3 打包crash问题--参考
xcode升级6.3之后,有些项目会出现打包crash的问题,只要选择偏好设置,把source control全部禁用掉就可以了.
- 对日期和时间的处理 NSCalendar
代码较老,供参考 NSCalendar用于处理时间相关问题.比如比较时间前后.计算日期所的周别等. 1. 创建或初始化可用以下方法 + (id)currentCalendar; 取得当前用户的逻辑日历 ...
- linux 下安装JDK1.7
安装JDK1.7 1. 打开网址http://www.oracle.com/technetwork/java/javase/downloads/jdk-7u5-downloads-1591156.ht ...
- ppshu
全部书籍已经下载完毕! http://3cvpkfx4gdnkcduj.onion/ https://3cvpkfx4gdnkcduj.onion.cab/ https://3cvpkfx4gdnkc ...
- Spark的TorrentBroadcast:实现
依据Spark 1.4版 序列化和反序列化 前边提到,TorrentBroadcast的关键就在于特殊的序列化和反序列化设置.1.1版的TorrentBroadcast实现了自己的readObject ...