分散式/集群環境下session處理策略
1. session複製
Session複製是早期企業應用系統使用較多的一直伺服器集群session管理機制。應用伺服器開啟Web容器Session複製功能,在集群中的幾台伺服器之間同步session對象,使得每台伺服器上都保存所有用戶的Session信息,這樣任何一台機器宕機都不會導致Session數據的丟失,而伺服器使用session時,也只需要在本機獲取即可。
這種方案簡單,從本機讀取Session信息的速度也很快,但是只能使用集群規模比較小的情況下。當集群規模較大時,集群伺服器間需要大量的通信進行session複製,佔用大量伺服器和網路資源,系統不堪負擔。
由於所有的Session信息都在每台伺服器上備份,在大量用戶訪問的情況下,會出現Session不夠使用的情況。
2. Session綁定
Session綁定可以利用負載均衡源地址Hash演算法實現,負載均衡伺服器總是將來源於同一IP的請求分發到同一台伺服器上(也可以根據Cookie信息將同一個用戶請求總是分發到同一台伺服器上,當然這時負載均衡伺服器必須工作在HTTP協議層上)
session綁定方案不符合對系統高可用的需求,因為伺服器宕機以後,session將不復存在。
3.利用Cookie記錄Session
每次客戶端請求伺服器時,將Session放在請求中發送給伺服器,伺服器處理完成請求後再將修改過的Session 響應給客戶端。
利用Cookie記錄Session也有一些缺點,受Cookie大小的限制,記錄有限;每次請求需要傳輸Cookie,影響性能;用戶關閉Cookie,訪問將不正常。
4.Session伺服器
利用Session伺服器(集群)統一管理Session,應用伺服器每次讀寫Session的時,都訪問Session伺服器。


※開源定時任務框架Quartz
※趣圖說明程序員和測試之間的關係
TAG:程序員小新人學習 |