第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期

1. 概述

  Windows Azure 是微软的云计算平台。用于 在微软数据中心 通过全局网络 生成、发布和管理应用程序。

  本章内容包括 startup tasks 以及  实现 Start, Run 和 Stop 事件。

2. 主要内容

  2.1 Windows Azure

    ① 提供 PaaS 和 IaaS 两种服务。

    PaaS 提供一个实际的计算平台,包括 操作系统、程序执行环境、数据库 和 web服务器。

    IaaS 是提供虚拟的机器。

    ② Windows Azure 有三种类型的解决方案:虚拟机器、web站点 和 云服务。

    虚拟机器:使用方式类似本地的机器,可以进行开发测试和部署。

    web站点:单纯的web站点寄宿。可以方便的部署和运行ASP.NET MVC4站点。

    云服务:直接的PaaS模式,是Windows Azure的初始发布模型。

  2.2 Startup tasks

    2.2.1 Windows Azure中有三种角色:Web、Worker 和 VM。

      Web一般用于执行IIS。Worker一般用于执行中间层的程序。而VM角色可以完全的访问虚拟机。

    2.2.2 通过 Startup tasks,可以 注册COM组件、安装组件或者设置注册key。Startup tasks仅对Web和Worker角色可用。

      Startup tasks 在 Task元素中定义,Task元素是 ServiceDefinition.csdef文件中的Startup元素的一个节点。

      一个标准的Startup tasks是一个命令行程序或者一个批处理文件。

    2.2.3 当一个角色启动,Windows Azure中,后续的过程如下:

      ① 实例被标记为Starting,不再接收通知。

      ② Startup tasks 根据taskType属性开始执行。。(简单任务以同步方式,后台和前台任务以异步方式。)

      ③ 角色寄宿过程启动,站点在iis中被创建。

      ④ 调用 Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint.OnStart 方法。

      ⑤ 实例被标记为Reader并开始接收通知。

      ⑥ 调用  Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint.Run 方法。

    2.2.4  AppCmd.exe命令行工具用于在Windows Azure中,启动时管理IIS设置。

    2.2.5 Startup tasks 可以被执行多次。忘记配置AppCmd.exe工具会导致运行时错误。

    2.2.6 可以把一个任务标记为后台执行。

<Startup>
    <Task commandLine="Startup\ExecWithRetries.exe
              &quot;/c:Startup\AzureEnableWarmup.cmd&quot;
              /d:5000 /r:20 /rd:5000 &gt;&gt; c:\enablewarmup.cmd.log
              2&gt;&gt;&amp;1"
          executionContext="elevated" taskType="background" />
</Startup>

    2.2.7 Windows Azure 虚拟机是无状态的。

  2.3 实现  Start, Run 和 Stop 事件

     OnStart 方法和 Startup tasks有许多概念上的相似点:

    ① 有相同的超时机制。

    ② 角色被回收时都会被再次执行。

    ③ 都可以配置先于角色处理。

     OnStart 方法和 Startup tasks 的不同之处包括:

    ① 未完待续。。。

时间: 2024-12-11 19:18:05

第三章 设计程序架构 之 设计实现Windows Azure 角色生命周期的相关文章

第五章 设计程序架构 之 设计缓存策略

1. 概述 本章内容包括:实现 页面输出缓存.数据缓存.程序缓存 以及 HTTP缓存. 2. 主要内容 2.1 页面输出缓存 缓存是开发高可用web程序的重要部分. ① 浏览器可以以预定义的时长保存一个HTTP GET请求. [OutputCache(Duration=120, VaryByParam="Name", Location="ServerAndClient")] Public ActionResult Index() { Return View(&quo

第六章 设计程序架构 之 设计实现WebSocket策略

1. 概述 传统的网页的通信方式是请求-相应模式,每次请求-相应都是新的连接.连接的建立和断开也是需要消耗资源的. WebSocket是基于TCP协议,实现单个连接上的双向通信. 本章内容包括: 异步读写字符串和二进制数据.选择连接损耗策略.何时使用WebSocket. 2. 主要内容 2.1 异步读写字符串和二进制数据  HTTP polling 是传统的使用一系列AJAX请求来实现客户端服务端长久连接(表面上看起来是长久连接)的方式. HTTP long polling 是客户端使用AJAX

鸟哥的 Linux 私房菜(服务器) 第三章 局域网络架构简介 第四章 连上 Internet

鸟哥的 Linux 私房菜(服务器) 第三章 局域网络架构简介 第四章 连上 Internet [TOC] 3.1 局域网络的联机 3.1.1 局域网络的布线规划 3.1.1-1 Linux 直接联网-与 PC 同地位 3.1.1-2 Linux 直接联网-与一般 PC 分开网域 3.1.1-3 Linux 直接联网-让 Linux 直接管理 LAN 3.1.1-4 Linux 放在防火墙后-让 Linux 使用 Private IP 3.2 本书使用的内部联机网络参数与通讯协议 3.2.1 联

三张图让你快速明白activity与fragment生命周期的异同点

第一张图:activity的生命周期 第二张图:fragment的生命周期 第三张图:activity与fragment生命周期对比 补充:如果你还是不明白,请翻译一下你不理解的对应单词. ---------------------------------------------------------------------------------------- 有什么问题,大家可以一起交流-- 更多精彩关于关注博主的微信订阅号:非常周末 微信搜索:非常周末 你可以扫描一下关注即可:

三张图让你高速明确activity与fragment生命周期的异同点

第一张图:activity的生命周期 第二张图:fragment的生命周期 第三张图:activity与fragment生命周期对照 补充:假设你还是不明确,请翻译一下你不理解的相应单词. ---------------------------------------------------------------------------------------- 有什么问题,大家能够一起交流-- 很多其它精彩关于关注博主的微信订阅号:很周末 微信搜索:很周末 你能够扫描一下关注就可以:

大型分布式架构设计与实现-第三章互联网安全架构

本章首先介绍了一些常见的Web攻击手段. 1.XSS攻击(Cross Sites Scripting),指跨站脚本攻击.攻击者在网页中嵌入恶意脚本程序,当用户打开该网页,恶意程序在浏览器执行,会盗取用户名密码,cookie,下载执行病毒木马程序,甚至是获取客户端admin权限等. 2.CSRF攻击(Cross Site Request Forgery),指跨站请求伪造.攻击者伪装成站点内受信任的用户进行恶意的发邮件,发短信,进行交易等,甚至盗取你的账号. 3.SQL注入攻击.通过把SQL命令伪装

第三章,平台开发设计与实现

在第二章中我们简单地介绍了接口自动化平台的基本功能,主要包括以下几个方面: (1)接口文档管理功能:管理接口信息,包括增,删,改,查等. (2)用例管理功能:新建,展示,查询,删除,运行测试用例. (3)测试用例集管理:新增,修改,删除,查找,运行测试用例集. (4)任务管理:管理定时任务,或者其他任务触发机制. (5)测试报告管理功能:展示,查找测试报告,对测试报告进行统计和分析. (6)日志管理功能:记录错误日志,对日志进行过滤及分析. (7)用户管理功能:以便对测试用例,测试计划,任务,报

第二章 设计程序架构 之 分布式应用

1. 概述 分布式应用是将程序的互相协作的各个模块放到不同的机器上,从而提高程序的性能和可靠性. 本章内容包括:集成web service.设计复合应用.分布式环境的session管理 以及 web farms. 2. 主要内容 2.1 集成web service 可以使用Asp.Net MVC4 创建 REST(Representation State Transfer) 服务. 使用 ApiController来返回序列化的数据.这个Controller根据Html头的Accepts属性来决

第四章 设计程序架构 之 状态管理

1. 概述 本章内容包括 如何选择状态管理架构.考虑扩展性.使用cookie和本地存储保存状态.web.config中配置 以及 实现sessionless状态. 2. 主要内容 2.1 选择状态管理架构 ① 首先需要考虑的问题是,你是否真的需要保存状态.无状态使得站点可以处理更多的并发访问. ② web forms 中有多种方式保存装填.最主要是就是ViewState.使用隐藏域来实现状态信息的传递. ③ MVC4程序中,状态信息可以保存在以下位置:Cache.Session.Cookies.