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 订阅限制,也可能偶尔收到错误. 本文说明一些常见分配 ...
随机推荐
- Create Entity Data Model
http://www.entityframeworktutorial.net/EntityFramework5/create-dbcontext-in-entity-framework5.aspx 官 ...
- C语言输出当前日期和时间
#include <stdio.h> #include <time.h> char* asctime2(const struct tm *timeptr) { static c ...
- php-redis中文文档(转)
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/ow ...
- HeadFirst Jsp 05 (属性和监听)
活用DD, 比如, 我想设置一个email地址, 但是不像在servlet中硬编码, 如果能再web.xml中设置一个参数, 直接拿到这个参数就更好一点. 容器建立一个servlet时, 它会读DD( ...
- Gradle学习系列(一)
今天就开始学习Gradle构建了,听说很牛X.本篇内容就带领我初步窥探Gradle的世界. 1.什么是Gradle 相信之前都接触过用Ant或者Meavn进行项目的构建,两者各有千 ...
- HDU 1847 (博弈 找规律) Good Luck in CET-4 Everybody!
为了提高题解质量还是简单证明一下:3的倍数是必败状态. 如果n % 3 = 1,那么拿走1个石子:如果n % 3 = 2,那么拿走两个石子,都将转移到3的倍数的状态.所以每个必胜状态都有一个后继是必败 ...
- HDU 1728 逃离迷宫【BFS】
题意:给出一个起点,一个终点,规定的转弯次数,问能否在规定的转弯次数内到达终点--- 这一题是学(看)习(题)的(解)@_@ 主要学了两个地方 一个是剪枝,如果搜到的当前点的转弯次数小于该点turn数 ...
- 关闭oom killer
最近有位 VPS 客户抱怨 MySQL 无缘无故挂掉,还有位客户抱怨 VPS 经常死机,登陆到终端看了一下,都是常见的 Out of memory 问题.这通常是因为某时刻应用程序大量请求内存导致系统 ...
- php 换行 PHP_EOL变量
一个小小的换行,其实在不同的平台有着不同的实现,为什么要这样,可以是世界是多样的. 本来在unix世界换行就用/n来代替,但是windows为了体现他的不同,就用/r/n,更有意思的是在mac中用/r ...
- python练习程序(c100经典例19)
题目: 一个数如果恰好等于它的因子之和,这个数就称为“完数”.例如6=1+2+3.编程找出1000以内的所有完数. def foo(a): sra=a; lis=[1]; while 1: for i ...