《Windows Azure Platform 系列文章目錄》html
本文是對筆者以前的文章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。以下圖:post
(2)優點:網站
不須要修改任何代碼url
(3)劣勢spa
須要建立額外的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 (2) 建立和使用Azure Redis Cache
本博-三石Blog(下文簡稱本博),在本博客文章結尾處右下腳未註明轉載、來源、出處的做品(內容)均爲本博原創,本站對於原創做品內容對其保留版權,請勿隨意轉載,如若真有須要的朋友能夠發Mail聯繫我;轉載本博原創做品(內容)也必須遵循「署名-非商業用途-保持一致」的創做共用協議,請務必以文字連接的形式標明或保留文章原始出處和博客做者(Lei Zhang)的信息,關於本博攝影做品請務必注意保留(www.cnblog.com/threestone)等相關水印版權信息,不然視爲侵犯原創版權行爲;本博謝絕商業網站轉載。版權全部,禁止一切有違中華人民共和國著做權保護法及相關法律和本博(法律)聲明的非法及惡意抄襲。