微软云平台 Azure简介 (二)Windows Azure 计算
在Windows Azure平台上运行的程序一般称作Hosted Service。
Windows Azure平台上的Hosted Service包含很有角色(Role),现在提供两个角色Worker Role和Web Role。
Worker Role就是Windows Sevice类程序。Web Role可以称作Worker Role的一个特例,运行在IIS 7上。
Web Role接受Http或者Https链接,挺供Web服务。Web Role公开的端口称作公共端点(Public EndPoint)。
Azure云平台为所有公开端点提供网络层的自动负载平衡。
Web Role和Worker Role都可以打开向外的TCP链接,也可以打开端口接收外来的链接。
这个非常的重要。
除了公共端口,每个实例可以打开内部端口。可以用来实现在不同的实力或者Roles之间进行同步通信。
Web Role的程序可以基于ASP.NET,WCF,或者可以运行在IIS上的任何技术。
例如可以运行基于Fast CGI的PHP程序。
大多数Web Role程序是基于Request-Replay模式。
Web程序要考虑的一个很重要的问题是Session。标准的ASP.NET提供了一些机制来保存Session。
通常在Web Server运行实例的内存中保持Session状态的做法在Web Role程序中会有问题。
因为Azure为Web Role程序提供自动的负载平衡,不能保证每次请求被分配到同一个Web Role实例。
WebRole中可以使用Windows Azure存储(storage),SQL Azure, 客户端Cookie,或者隐藏的Form元素
来保存Session状态。
WebRole和Work Role合作模式
Web Role接受请求,把请求放入消息队列,并从存储或者blob,table取得处理结果
Work Role不断从消息队列取要处理的工作,处理结果放到存储或者blob,table中
此结构非常适合类似的抢票系统,例如日语等级考试报名,并发性特别强,10分钟内大概10W用户访问。