Azure中的分布式1——多实例
Azure中的WebRole和WorkerRole天然支持负载均衡,只需要简单配置一下即可,下面我以一个WebRole为例说明这一点。
创建一个项目类型为MVC4的WebRole

项目结构如下:

右键点击Role的属性进入配置选项卡,将实例计数修改为3,这里的一个实例相当于一台主机

为了验证我的配置正确,我在HomeController的Index方法中加点Response数据。
IsAvailable表示角色实例是否正在运行在Windows Azure环境中;
IsEmulated表示角色实例是否正在运行在Windows Azure云模拟器中;
InstanceId获取一个代表角色实例的ID;
public class HomeController : Controller
{
public ActionResult Index()
{
ViewBag.Message = "Modify this template to jump-start your ASP.NET MVC application.";
ViewBag.IsAvailable = RoleEnvironment.IsAvailable;
ViewBag.IsEmulated = RoleEnvironment.IsAvailable && RoleEnvironment.IsEmulated;
ViewBag.InstanceId = RoleEnvironment.CurrentRoleInstance.Id;
return View();
}
}
当然我们还需要在Views\Home\Index.cshtml页面中加点显示代码:
<p style="color: red">RoleEnvironment.IsAvailable: @ViewBag.IsAvailable</p>
<p style="color: red">RoleEnvironment.IsEmulated: @ViewBag.IsEmulated</p>
<p style="color: red">RoleEnvironment.InstanceId: @ViewBag.InstanceId</p>
最后Ctrl + F5运行Azure项目,观察模拟器的运行情况,1个Role,3个实例运行正常:

在浏览器中输入http://127.0.0.1:81/,不停的刷新页面,结果如我们所料,3台主机处理客户端请求。


Azure多实例的最大优点就是实现简单,负载策略和实现方法我们都不需要操心,并且支持自动缩放,在站点压力大时,增加实例处理更多的请求数;夜间压力小时,减少实例降低运营成本,实现真正的按计算收费;个人认为唯一的缺点就是无法对负载策略进行人工干预,比如指定某一批用户访问指定的实例,当然这也有对应的解决方案。
Azure中的分布式1——多实例的更多相关文章
- Azure Tips 第一期: Azure 中的安全监视工具,数据存储, 动态数据屏蔽以及资源部署
# 1 Azure 中的安全监视工具 微软 Azure 云提供以下监控工具,可用于观察操作和检测异常行为. Azure 安全中心 Azure 安全中心是一个统一的基础结构安全管理系统,可以增强数据中心 ...
- SQL Azure (14) 将云端SQL Azure中的数据库备份到本地SQL Server
<Windows Azure Platform 系列文章目录> 注意: 1.只有SQL Server 2012 CU4及以上版本才支持本章内容 2.当你的数据库文件很大时,建议优化以下内容 ...
- 在Azure中的Ubuntu中安装Open edX
最近,由于工作原因,在Azure上的Ubuntu虚拟机中安装了Open edX 实例,安装过程遇到了不少问题, 在从网上找答案的过程中,学习到了不同的知识. 注:若Ubuntu虚拟机Setup在Glo ...
- 使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境
发布于 2013-12-11 作者 Ross Gardler 微软开放技术有限公司 (MS Open Tech) 很高兴地宣布发行新的 Windows Azure Puppet 模块.通过这个模 ...
- 使用 HPC Pack 为 Azure 中的 Windows HPC 工作负荷创建和管理群集的选项
利用 Microsoft HPC Pack 和 Azure 的计算与基础结构服务,创建和管理基于云的高性能计算 (HPC) 群集. HPC Pack 是在 Azure 和 Windows Server ...
- 在 Azure 中管理 Windows 虚拟机的可用性
了解如何设置和管理多个虚拟机,以确保 Azure 中 Windows 应用程序的高可用性. 也可以管理 Linux 虚拟机的可用性. Note Azure 具有用于创建和处理资源的两个不同的部署模型: ...
- Azure 中虚拟机的区域和可用性
Azure 在中国的两个数据中心运行. 这些数据中心分组到地理区域,让用户可灵活选择构建应用程序的位置. 请务必了解 Azure 中虚拟机 (VM) 运行的方式和位置,以及最大化性能.可用性和冗余的选 ...
- 如何在 Azure 中创建 ASP.NET Web 应用
Azure Web 应用提供高度可缩放.自修补的 Web 托管服务. 本快速入门演示如何将第一个 ASP.NET Web 应用部署到 Azure Web 应用中. 完成后,便拥有了一个资源组,该资源组 ...
- 排查在 Azure 中创建、重启 Windows VM 或调整其大小时发生的分配失败
创建 VM.重新启动已停止(解除分配)的 VM 和重设 VM 大小时,Azure 会为订阅分配计算资源. 执行这些操作时,即使尚未达到 Azure 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...
随机推荐
- Java 异常 —— java.io.InvalidClassException: javax.xml.namespace.QName; local class incompatible
项目中有个 WebService 接口,调试时使用 Main 方法运行,别人的机器上都能运行,就笔者的机器出问题.他们说是RP的问题…… 异常信息: java.io.InvalidClassExcep ...
- Eclipse —— 如何修改文件的默认编辑器
Eclipse下的各类文件各自都有默认的编辑器,但不一定好用.如何指定各种文件的默认编辑器呢? 假如,Properties文件,我不想用Eclipse自带的编辑器,而是使用 Properties Ed ...
- supersocket中的日志处理
接口以及类之间的关系
- JQuery操作Ajax
一.jQuery - AJAX 简介 AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML). AJAX 是与服务器交换数据的艺术,它在 ...
- timer的使用
; private void timer1_Tick(object sender, EventArgs e) //定时执行事件 { button1.Text = i.ToString();//显示按钮 ...
- 解决eclipse-helios中Errors running builder JavaScript Validator的问题
原文:http://blog.ywxyn.com/index.php/archives/713 解决eclipse-helios中Errors running builder JavaScript V ...
- PHPStorm/webstorm tips
phpstorm对于使用PHP开发web的人员来说,是一个非常不错的编辑开发IDE,以前用过sublime,但是相比于storm,sublime在浏览legacy代码,类代码编辑方面明显要逊色不少.同 ...
- HDU 4006 The kth great number【优先队列】
题意:输入n行,k,如果一行以I开头,那么插入x,如果以Q开头,则输出第k大的数 用优先队列来做,将队列的大小维护在k这么大,然后每次取队首元素就可以了 另外这个维护队列只有k个元素的时候需要注意一下 ...
- memcached内存管理及key value长度限制
1)什么是内存碎片?内存是大小有限的资源.例如把内存比作一张小床,来了一个小伙伴,可以睡下,再来一个小伙伴也能睡下.现在两个人了,他们点了差不多的大小的位置(资源),位置还有剩下.然后再来一个小胖子, ...
- mysql分区(partition)
1)按范分区(range) partition by range(Year(birthday))( partition p0 values less than 1960, partition p1 v ...