《Windows Azure Platform 系列文章目录

  本文是对笔者之前的文章Windows Azure Cloud Service (13) 多个VM Instance场景下如何处理ASP.NET Session的补充。

  这里笔者将同时介绍IaaS和PaaS平台。

  

  我们知道,在Windows Azure平台,Session是需要小心处理的。对于IaaS平台和PaaS平台,我们处理Session的方法如下:

  

  一.创建额外的虚拟机,安装Nginx或者IIS ARR保留Session

  (1)处理方式:

    创建额外的虚拟机,使用Nginx或者IIS ARR保留Session。如下图:

    

  (2)优势:

    不需要修改任何代码

  (3)劣势

    需要创建额外的Azure Virtual Machine,会增加额外的成本

  (4)相关技术文档:

    略。

  二.将Session保存到数据库里

  (1)处理方式:

    通过将Session保存到数据库里,可以保证Session不会丢失。

  (2)优势:

    同时适合本地托管(on-premise)和云端部署(on cloud)

  (3)劣势:

    需要修改代码

  (4)相关技术文档

    略

  三.PaaS平台,将Session保存到In-Role Cache

  (1)处理方式:

    将Session保存到In-Role Cache中,保证Session的持久化

   (2)优势:  

    可以使用Shared Cache或者Dedicated Cache

   (3)劣势:

    只适合于PaaS平台

    需要修改代码

    如果要使用Dedicated Cache,会增加额外的成本

  (4)相关技术文档:

        Windows Azure Cloud Service (42) 使用Azure In-Role Cache缓存(1)Co-located Role

           Windows Azure Cloud Service (43) 使用Azure In-Role Cache缓存(2)Dedicated Role

  四.修改Azure Load Balancer(负载均衡器)规则

  (1)处理方式:

  默认的Azure Load Balancer规则为五要素:source IP, source port, destination IP, destination port, protocol type。

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

  

  (2)优势:

    不需要修改任何代码

  (3)劣势:

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

  (4) 相关技术文档

    Azure PowerShell (8) 使用PowerShell设置Azure负载均衡器规则

  五.将Session保存到Redis Cache中

  该功能已经在国外的Azure提供,国内由世纪互联运维的Azure还未提供相关的功能,笔者会在随后的博文中做详细介绍。

  Update:2015-11-19,Azure China的Azure Redis Cache功能现在是公共预览(Public Preview)。

  Azure Redis Cache (1) 入门

  Azure Redis Cache (2) 创建和使用Azure Redis Cache

  本博-三石Blog(下文简称本博),在本博客文章结尾处右下脚未注明转载、来源、出处的作品(内容)均为本博原创,本站对于原创作品内容对其保留版权,请勿随意转载,如若真有需要的朋友可以发Mail联系我;转载本博原创作品(内容)也必须遵循“署名-非商业用途-保持一致”的创作共用协议,请务必以文字链接的形式标明或保留文章原始出处和博客作者(Lei Zhang)的信息,关于本博摄影作品请务必注意保留(www.cnblog.com/threestone)等相关水印版权信息,否则视为侵犯原创版权行为;本博谢绝商业网站转载。版权所有,禁止一切有违中华人民共和国著作权保护法及相关法律和本博(法律)声明的非法及恶意抄袭。

Windows Azure HandBook (4) 分析Windows Azure如何处理Session的更多相关文章

  1. Windows Azure HandBook (3) 浅谈Azure安全性

    <Windows Azure Platform 系列文章目录> 2015年3月5日-6日,参加了上海的Azure University活动.作为桌长与微软合作伙伴交流了Azure相关的技术 ...

  2. Windows Azure HandBook (9) Azure性能测试(2)

    <Windows Azure Platform 系列文章目录> 在上一节中,笔者介绍了我们在Azure性能测试之前,首先需要提交<渗透性测试表> Windows Azure H ...

  3. Windows Azure HandBook (1) IaaS相关技术

    <Windows Azure Platform 系列文章目录> 1.Microsoft Azure底层是否由System Center和Hyper-V构成? Microsoft Azure ...

  4. Windows Azure HandBook (2) Azure China提供的服务

    <Windows Azure Platform 系列文章目录> 对于传统的自建数据中心,从底层的Network,Storage,Servers,Virtualization,中间层的OS, ...

  5. Windows Azure HandBook (5) Azure混合云解决方案

    <Windows Azure Platform 系列文章目录> 在很多情况下,我们都会遇到本地私有云和公有云做互通互联的混合云场景.对于这种混合云的场景,微软的Windows Azure会 ...

  6. Windows Azure HandBook (8) Azure性能测试(1)

    <Windows Azure Platform 系列文章目录> 我们在项目上线之前,常常需要对部署在微软云上的应用软件做压力测试. 一般的压力测试,常常在本地计算机安装压力测试软件 (比如 ...

  7. Azure IoT Edge on Windows 10 IoT Core

    在今年的Build大会上,微软推出了Azure IoT Edge的第一个版本(https://github.com/Azure/iot-edge ).该版本的主要特点就是将计算能力由Azure端推送至 ...

  8. [转]Azure 表存储和 Windows Azure SQL Database - 比较与对照

    本文转自:https://msdn.microsoft.com/library/azure/jj553018 更新时间: 2014年10月 作者:Valery Mizonov 和 Seth Manhe ...

  9. Windows Azure Storage (19) 再谈Azure Block Blob和Page Blob

    <Windows Azure Platform 系列文章目录> 请读者在参考本文之前,预习相关背景知识:Windows Azure Storage (1) Windows Azure St ...

随机推荐

  1. LDA和PLSA

    看了<LDA数学八卦>和July的博客,里面涉及到好多公式推导...感觉好复杂,于是记录一些重点简洁的东西,忽略大批量铺垫,直接回答LDA和PLSA是区别: 在pLSA模型中,我们按照如下 ...

  2. Ubuntu Desktop开发生产环境搭建

    Ubuntu Desktop开发生产环境搭建 1   开发生产环境搭建 在本节内容开始前,先定义一下使用场合,没有哪种系统或者设备是万能的,都有它的优点和缺点,能够在具体的使用场景,根据自身的需求来取 ...

  3. Homework_4 四则运算 - C#版

    题目要求 :http://www.cnblogs.com/gdfhp/p/5311937.html 结对同伴: 姓名:胡仕辉   学号:130201225   博客地址:http://www.cnbl ...

  4. Unity3D热更新全书-重头再来

    之前写了Unity3D热更新全书系列Blog 提出了下载.加载.脚本三个方面的开源类库 下载方面有EasyDown加载方面有GameObjParser脚本方面有C#Light另外有一个没有独立成库,但 ...

  5. [安卓] 14、安卓HTTP——POST和GET用法分析

    内容简介 本文通过建立一个简单的Servlet服务器来分析安卓上用HTTP和服务器通信的细节,旨在演示C/S模式下服务器端和客户端的工作过程. 目录 part.1 用MyEclipse建立一个简单的s ...

  6. linux下进程间通信

    信号 信号是进程间相互传递消息的一种方法,只是用来通知某进程发生了什么事件,并不给进程传递任何数据. #include <sys/types.h> #include <unistd. ...

  7. QT屏蔽qDebug的方法

    在工程文件.pro里面添加 DEFINES += QT_NO_WARNING_OUTPUT\                   QT_NO_DEBUG_OUTPUT 然后rebuild all.这样 ...

  8. Git学习笔记(3)——撤销修改和文件的删除

    本文主要记录了git中,错误的撤销和文件的删除. 撤销修改 这里有3中情况 改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file. 不但改乱了工作区某个 ...

  9. [Maven]Eclipse插件之Maven配置及问题解析.

    前言:今天在自己环境装了Maven环境, 并且安装了Eclipse插件, 在查找插件过程中确实遇到一些问题, 好不容易找到一个  却又有问题.装好了插件之后, 用Eclipse创建Maven项目却出现 ...

  10. Atiit 如何手写词法解析器

    Atiit 如何手写词法解析器 1.1. 通过编程直接从正则->nfa->dfa->表驱动词法解析一条龙自动生成.那是用程序自动生成是需要这样的,自己手写完全不必要这么复杂1 1.2 ...