《Windows Azure Platform 系列文章目录

  注意:如果Azure面对的客户只是企业级客户,企业级客户使用NAT设备访问Internet的话,因为多个客户端使用相同的Source IP地址,会造成单台服务器压力过大的情况。

  这个功能已经出来一段时间了,笔者在这里做一下小记。

  熟悉Azure平台的读者都知道,Azure Load Balancer(负载均衡器)的规则,是由五要素组成source IP, source port, destination IP, destination port, protocol type

  参考资料:http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

  这样Azure Load Balancer可以保证绝对的负载均衡,如下图:

  

  但是这样的负载均衡器会有缺陷,当企业用户的应用程序需要保留会话(Session)的时候,不得不要修改应用程序代码,将Session保存到SQL Server或者In-Role Cache中去。

  最新的Azure Load Balancer可以将规则进行修改,改为2要素sourceIP,(Source IP,Destination IP)或3要素sourceIPProtocol,(Source IP, Destination IP, Protocol)。这样由同一个客户端发起的请求,会指向同一个Azure目标服务器。通过这种方式,就可以保留Session。如下图所示:

  

  

  准备工作:请读者参考[New Portal]Windows Azure Virtual Machine (9) Virtual Machine高可用与自动负载均衡(下),在Azure创建如下内容:

-  创建2台Windows Server 2012 VM,命名为LeiZhangVMOne和LeiZhangVMTwo

-  创建DNS Name为LeiZhangVM

-  负载均衡设置Public Port为80端口,Private Port为80端口,负载均衡器为LB_80

  1.查看80端口的默认Endpoint规则

  我们执行以下代码:

Get-AzureVM –ServiceName 'LeiZhangVM' –Name 'LeiZhangVMOne' | Get-AzureEndpoint

  可以查看到

  

  上图中,我们看到LoadBalancerDistribution属性为空。使用默认的规则,为五要素:source IP, source port, destination IP, destination port, protocol type

  2.重新设置Azure Load Balancer规则为sourceIP

  然后我们执行以下的代码:

Set-AzureLoadBalancedEndpoint -ServiceName 'LeiZhangVM' -LBSetName 'LB_80' -Protocol tcp -LocalPort  -ProbeProtocolTCP -ProbePort  –LoadBalancerDistribution 'sourceIP'

  查看执行结果,如下图:

  

  3.查看更新后的Load Balancer规则

  我们重新执行以下PS代码:

Get-AzureVM –ServiceName 'LeiZhangVM' –Name 'LeiZhangVMOne' | Get-AzureEndpoint

  查看与图1中的区别,如下图红色部分

  

  可以看到,相比图1,上图中LoadBalancerDistribution属性为sourceIP,这样就完成配置Load Balancer的2要素(Source IP,Destination IP)

  如果要改回默认的负载均衡器规则,请设置LoadBalancerDistribution为none

Set-AzureLoadBalancedEndpoint -ServiceName 'LeiZhangVM' -LBSetName 'LB_80' -Protocol tcp -LocalPort  -ProbeProtocolTCP -ProbePort  –LoadBalancerDistribution 'none'

  

  参考资料:http://azure.microsoft.com/blog/2014/10/30/azure-load-balancer-new-distribution-mode/

Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则的更多相关文章

  1. Azure 自动化:使用PowerShell Credential连接到Azure

    最近在中国版windows azure中新上线的自动化功能, 使用自动化,您可以导入自己的PowerShell脚本,然后设置一个运行计划使得脚本能按计划运行. 在本文中,我们来学习如何使用PowerS ...

  2. Azure 基础:使用 powershell 创建虚拟网络

    什么是虚拟网络 虚拟网络是您的网络在 Azure 云上的表示形式.您可以完全控制虚拟网络的 IP 地址.DNS 的设置.安全策略和路由表.您还可以更进一步,把虚拟网络划分为多个子网.然后用它们连接您的 ...

  3. Azure 基础:用 PowerShell 自动登录

    PowerShell 是管理 Azure 的最好方式,因为我们可以使用脚本把很多的工作自动化.比如把 Azure 上的虚拟机关机,并在适当的时间把它开机,这样我们就能节省一些开支,当然我们同时也为减少 ...

  4. 【Azure Developer】调用SDK的runPowerShellScript方法,在Azure VM中执行PowerShell脚本示例

    当需要通过代码的方式执行PowerShell脚本时,可以参考以下的示例. Azure SDK中提供了两个方法来执行PowerShell脚本 (SDK Source Code: https://gith ...

  5. 【Azure 环境】用 PowerShell 调用 AAD Token, 以及调用Azure REST API(如资源组列表)

    问题描述 PowerShell 脚本调用Azure REST API, 但是所有的API都需要进行权限验证.要在请求的Header部分带上Authorization参数,并用来对List Resour ...

  6. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP

    <Windows Azure Platform 系列文章目录> 笔者在之前的工作中,有客户提出想一次性查看Azure订阅下的所有Azure VM的Public IP和Private IP. ...

  7. Azure 基础:使用 powershell 创建虚拟机

    在进行与 azure 相关的自动化过程中,创建虚拟主机是避不开的操作.由于系统本身的复杂性,很难用一两条简单的命令完成虚拟主机的创建.所以专门写一篇文章来记录使用 PowerShell 在 azure ...

  8. 【Azure 应用服务】Azure Function App 执行PowerShell指令[Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt]错误

    问题描述 使用PowerShell脚本执行获取Azure订阅列表的指令(Get-Azsubscription -TenantId $tenantID -DefaultProfile $cxt).在本地 ...

  9. 【Azure 应用服务】使用PowerShell脚本上传文件至App Service目录  

    问题描述 使用PowerShell脚本上传文件至App Service目录的示例 脚本示例 对文件进行上传,使用的 WebClient.UploadFile 方法进行上传.当文件夹中包含子目录,执行以 ...

随机推荐

  1. Arduino uno 引脚说明

    http://openhome.cc/Gossip/Books/mBlockArduino1-3and1-4.html http://swf.com.tw/?p=406

  2. Glide实现圆角和圆形图片

    实现圆形图片 , 传参第一个为上下文, 第二个为角度 package com.hh.beauter.util; import android.content.Context; import andro ...

  3. js判断当前页面在移动设备还是在PC端中打开

    方法一: var isPC = function () { var userAgentInfo = navigator.userAgent.toLowerCase(); var Agents = ne ...

  4. 安装SVN客户端重启电脑之后,右键未出现SVN选项的原因

    今天安装SVN客户端明明安装成功,电脑也重启过了,但是就是在右键里找不到SVN,百度了很久,删注册表.建用户组之类的方法都试过了,但是都没有效果. 后来才找到真正的原因,我的安装包是32位的,系统是6 ...

  5. 【CentOS】安装RPM包或者源码包

    一.rpm  (是Redheat Package Manager的简称) 如果光驱中还有系统安装盘的话, 1.先挂载光驱, mount /dev/cdrom /mnt/ 2.cd /mnt/ 3.cd ...

  6. 【iOS Instrument性能优化集】

    iOS Instrument性能优化集 1.UIImage缓存取舍 在项目代码中看到大量使用如下代码: UIImage使用 在Main Thread中发现不同动画场景中Image IO 开销和耗时所占 ...

  7. 在Spring中轻松写日志

    最近觉得写的一点代码(JAVA),还觉得颇为自得,贡献出来供大家参考. 首先,先上代码: @Controller public class Controller1{ @WriteLog(value = ...

  8. BZOJ2342 Manacher + set

    题一:别人介绍的一道题,题意是给出一个序列,我们要求出一段最常的连续子序列,满足:该子序列能够被平分为三段,第一段和第二段形成回文串,第二段和第三段形成回文串. 题二:BZOJ2342和这题非常的相似 ...

  9. java 判断两个list是否相等

    /** * 队列比较 * @param <T> * @param a * @param b * @return */ public static <T extends Compara ...

  10. Nodemanager Out of heap memory[fix bug全过程]

    问题: 自己写了一个yarn上的application,发现nodemanager过段时间,会out of memory退出,把nodemanager的heap memory从1G增大到2G也是无法避 ...