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

简介:

 《Windows Azure Platform 系列文章目录

 

  Update 2016-01-12

  https://azure.microsoft.com/zh-cn/documentation/articles/cache-dotnet-how-to-use-in-role/

  微软宣布Azure Managed Cache Service和Azure In-Role Cache会在2016年11月30日下线,建议所有的用户采用Redis Cache。

  有关Redis Cache的内容,请参考:

  http://www.cnblogs.com/threestone/category/741409.html

 

 

  笔者很早以前就想写这篇文章了,昨天晚上项目正好遇到,今天记录下来。

 

  为什么要使用In-Role Cache?

  我们在开发PaaS Cloud Service的时候,PaaS VM都是无状态的。而且默认的Load Balancer是5要素(source IP, source port, destination IP, destination port, protocol type)

  http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

  如果遇到需要保留Session,使用Cache的时候,就会遇到一些问题。这时候,我们就可以使用In-Role Cache了。

 

  In-Role Cache介绍

  In-Role Cache分为两种方式:

  -  Co-located Role(共享模式)。在共享模式中,Caching是保存在多个Web Role Instance的内存中。

  -  Dedicated Role(专用模式)。在专用模式中,用户需要在工程文件中新建额外的Cache Worker Role,Caching不保存在Web Role VM的内存中,而是保存在新建的Cache Worker Role中。

    因为使用Dedicated Role,需要增加额外的Cache Worker Role,会增加计算成本

 

  如何使用In-Role Cache?  

  1.In-Role Cache不能在Virtual Machine虚拟机中使用,只能在PaaS Cloud Service使用。

  2.In-Role Cache不是通过Azure Management Portal创建的,而是安装完Azure SDK后,在Cloud Project中配置的。

 

  注意:本章介绍的是Co-located Role(共享模式)。

  Co-located Role的架构图,请参考http://weblogs.asp.net/scottgu/meet-the-new-windows-azure 

  

  

  1.使用管理员身份,运行Visual Studio 2013,创建一个新的Cloud Project,命名为LeiColocatedRole。图略。

  2.在New Windows Azure Cloud Service中,只需要添加ASP.NET Web Role。如下图:

  

  3.我们在项目文件中,选择WebRole1,右键,属性

  

  4.在Configuration栏目中,将Instance Count设置为2,设置2个Web Role Instance做高可用,如下图:

  

  

  5.在Caching栏目,修改以下红色部分

  

  (1)勾选Enable Caching,启用In-Role Caching  

  (2)点击Co-located Role,并且在Cache Size中,设置内存比,即PaaS Web Role Instance的30%内存用来保存Caching信息

  (3)设置Storage Account,因为Cache Cluster(PaaS Web Role Instance)会将Runtime的信息保存在Storage,所以这里一定要设置正确

  (4)Named Cache默认是default,我们可以通过Add Named Cache,增加新的Cache Name。

  另外,笔者在步骤4设置了Instance Count=2,所以我们可以勾选High Availability,保证高可用。这样不会因为某台Web Role Instance因为故障宕机导致Caching丢失

  (如果Instance Count=1的话,是无法勾选High Availability)

  

 

  6.然后我们点击WebRole1,右键,Manage NuGet Packages

  

  

  7.查找关键字Windows Azure Cache,查询到结果后,点击下图的Install进行安装

  

 

  8.安装完NuGet之后,会发现WebRole1项目下,增加了以下的引用:

  

  如果你使用ASP.NET,还会增加引用:Microsoft.Web.DistributedCache.dll

 

  9.我们修改WebRole1下的Web.config,找到autoDiscover节点,如下图:

  

  将上图中的[Cache role name or Service Endpoint]中的节点,修改为项目文件的RoleName,在笔者的Sample Code中,我们设置为WebRole1

  设置完毕后的结果如下图:

  

 

  10.将ASP.NET的Session指向Cache

  最后我们在Web.Config节点中,将sessionState节点的注释去掉。如下图:

  

  注意:如果在步骤5中,修改了默认的Named Cache "default",我们需要在上面的XML节点中,将dataCacheClientName的节点,修改为我们自定义的Cache Name。如上图红色部分:

 

 

  11.使用In-Role Cache

  在C#代码中,增加using语句:

using Microsoft.ApplicationServer.Caching;

  声明DataCache

 static DataCache myCache;

  实例化

 myCache = new DataCache("default");

  写Cache

myCache.Put("MyKey", TextBox1.Text);

  读Cache

string outputFromCache = myCache.Get("MyKey") as string;

 

 

  参考资料:http://blog.sanc.idv.tw/2012/06/windows-azure-windows-azure-co-located.html


本文转自Lei Zhang博客园博客,原文链接:http://www.cnblogs.com/threestone/p/4367859.html,如需转载请自行联系原作者

目录
相关文章
|
17天前
|
Linux C++ Windows
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
【Azure 应用服务】Azure App Service(Windows)环境中如何让.NET应用调用SAP NetWeaver RFC函数
|
17天前
|
PHP Windows
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
【Azure App Service for Windows】 PHP应用出现500 : The page cannot be displayed because an internal server error has occurred. 错误
|
17天前
|
网络安全 API 数据安全/隐私保护
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
【Azure App Service】.NET代码实验App Service应用中获取TLS/SSL 证书 (App Service Windows)
|
17天前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
7天前
|
网络安全 虚拟化 Windows
windows 11安装openSSH server 遇到的"kex_exchange_identification: read: Connection reset"问题
windows 11安装openSSH server 遇到的"kex_exchange_identification: read: Connection reset"问题
|
27天前
|
开发框架 .NET API
Windows Server 2022 安装IIS 报错 访问临时文件夹 C:\WINDOWS\TEMP\3C 读取/写入权限 错误: 0x80070005
Windows Server 2022 安装IIS 报错 访问临时文件夹 C:\WINDOWS\TEMP\3C 读取/写入权限 错误: 0x80070005
62 0
|
29天前
|
Linux Docker Windows
Windows——Docker拉取Windows Server镜像
Windows——Docker拉取Windows Server镜像
97 0
|
2月前
|
弹性计算 持续交付 Docker
阿里云云效产品使用合集之如何部署到阿里云服务器上的 Windows Server 上的 IIS
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
2月前
|
网络协议 Unix 网络安全
FTP服务器怎么搭建?Windows server搭建FPT服务器
FTP服务器是按照FTP协议提供文件传输服务的计算机。它用于在两台计算机间安全地传输文件,支持用户权限管理和跨平台操作。FTP使用控制连接处理命令,数据连接传输文件,有PORT和PASV模式。要搭建FTP服务器,首先在Windows Server 2008 R2上安装IIS,确保选中FTP服务。接着,创建FTP文件夹作为站点根目录,通过IIS管理器添加FTP站点,配置站点信息、身份验证和权限。测试客户端通过telnet和浏览器访问FTP服务器,确认能成功登录及浏览文件。FTP常用于文件共享和管理,可通过专用工具如FlashFXP上传下载文件。
104 0
FTP服务器怎么搭建?Windows server搭建FPT服务器
下一篇
DDNS