• Windows Azure HandBook (4) 分析Windows Azure如何处理Session


      《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)等相关水印版权信息,否则视为侵犯原创版权行为;本博谢绝商业网站转载。版权所有,禁止一切有违中华人民共和国著作权保护法及相关法律和本博(法律)声明的非法及恶意抄袭。

  • 相关阅读:
    Java Class/Method
    Data Types in Java
    Java overview && JVM
    Interface Vs. Abstract Class
    【javascript】Object三种定义方式
    【C#】导出Excel
    【javascript】简单原型链、借用构造函数
    Mysql表编码查看修改
    asp.net的mvc?
    连表
  • 原文地址:https://www.cnblogs.com/threestone/p/4395906.html
Copyright © 2020-2023  润新知