一種分布式session實現方案

2021-07-27 06:24:18 字數 1656 閱讀 2905

當伺服器的訪問壓力達到一定程度時,會採用分布式部署方案,即分布式集群部署,多個服務節點都可以提供同樣的服務能力,這樣,當大量的http請求到達服務端時,由負載均衡演算法,將不同的請求相對均勻地分發到不同的服務節點上,達到了降低單個服務節點的訪問壓力,同時也可以解決服務單點故障問題。

採用分布式集群部署方案,一般都要解決session共享問題,如下圖所示:

考慮問題:同乙個client依次傳送3個http請求,順序依次是request1,request2,request3,經負載均衡演算法,被分發到3個不同的服務節點node1,node2,node3,那麼,client首先訪問server node1進行登入操作,登入成功後建立session,server node1上儲存session,同時執行response.addcookie(sessionid)返回給client,client儲存cookie;然後client發起請求request2,此時request2訪問到server node2,在server node2上根據sessionid找不到session,會提示session不存在,即server node1和 server node2無法共享同乙個session...

那麼如何讓不同的server node共享session呢?

如下圖所示:

設計需要思想:需要乙個分布式cache(redis、memcached等),然後server node在建立session時,將session存入到分布式cache中,獲取session時,從分布式session中取,這樣就實現session共享了...

如下圖所示:

我們只要做一件事,就是將session相關的操作訪問我們自定義的方法,我們自定義的方法操作的是分布式cache,那麼就可以解決session共享問題了,也就是下圖所示:

接下來就是訪問的問題了,看下圖:

下面,給出實現流程...

至此,整個分布式session的實現方案結束...

一種分布式session實現方案

一種分布式session實現方案 當伺服器的訪問壓力達到一定程度時,會採用分布式部署方案,即分布式集群部署,多個服務節點都可以提供同樣的服務能力。這樣,當大量的http請求到達服務端時,由負載均衡演算法,將不同的請求相對均勻地分發到不同的服務節點上,達到了降低單個服務節點的訪問壓力,同時也可以解決服...

分布式概念 分布式鎖(分布式互斥的一種實現方式)

分布式系統中,多個節點都需要訪問乙個臨界資源,但是同一時刻只能有乙個節點可以訪問,為了解決這個問題就是要通過分布式互斥來實現 分布式鎖就是實現分布式互斥的一種實現方式。鎖是實現多執行緒同時訪問同一共享資源,保證同一時刻只有乙個執行緒可訪問共享資源所做的一種標記。分布式鎖是指分布式環境下,系統部署在多...

分布式是一種思想

分布式是一種思想,範圍很廣,我得先知道它的誕生 以前是乙個資料庫 乙個jsp 就可以做乙個應用了,後來隨著業務複雜,我們開始分層,比如mvc之類的,再後來我們的資料越來越多了,比如有上億的資料,這個時候我們乙個資料庫查詢太慢了,就開始分庫,這也算是分布式的一種。還有比如我們的系統訪問的人多了,比如雙...