首頁 後端開發 php教程 Session 在分散式系統中的處理

Session 在分散式系統中的處理

Jul 29, 2016 am 08:58 AM
addclass cookie parent session

伺服器獨立Session

如下圖:
伺服器獨立Session要求使用者的每次請求都必須在同一台應用伺服器上面操作,這就要求負載平衡伺服器每次都能把使用者的請求傳送到同一個位址的伺服器上面。
第一個使用者第一次造訪的1號伺服器,那個在使用者的整個會話中都必須由負載平衡伺服器導流到1號伺服器上面。其他伺服器不會保存1號用戶的Session資訊。

現在的負載平衡伺服器一般都有這個功能(nginx)
Session 在分布式系统中的处理

但是如果出現下面的情況
Session 在分布式系统中的处理

這個時候1號伺服器宕機的情況下,負載平衡伺服器會把用戶導流到2號或3號伺服器上面,但是使用者在2和3號伺服器上面沒有安全的上下文環境,伺服器會通知使用者重新登入。這樣使用者體驗一定會受到影響。而且很可能用造成用戶的資料遺失。

每台伺服器保留全部Session

每台伺服器保留全部用戶的Session這就關係到應用伺服器之間的Session同步問題,即時性要求比較高。這種方式能夠避免上面伺服器獨立Session所遇到的問題,如下圖所示:

Session 在分布式系统中的处理

優點

這種方式即使出現第一種情況那麼2和3號伺服器上面也保存的1號的Session訊息,當故障負載平衡伺服器把1號使用者導流到2和3號伺服器上面時,伺服器也會發現有1號使用者的安全上下文,能夠繼續存取而且不需要重新登入。

缺點

但是這種方式也有缺點,那就是對應用伺服器的Session同步即時性要求比較高,而且會帶來額外的跨帶開銷,而且當Session之遙有變化時,就需要同步。如果Session裡面的資訊量比較大,那個會佔用相當大的記憶體消耗。

伺服器共享Session

伺服器共享Session資訊:

Session 在分布式系统中的处理

優點

每個用戶的Session資訊都會儲存到應用程式之外的另一台伺服器(可能是資料庫,也可能是KV儲存服務) ,這樣應用程式伺服器就不用儲存每個使用者的Session資訊了,節省了很大的記憶體開銷。

當不同應用伺服器需要用到Session資訊的時候就去找共享Session伺服器來取得資訊。

這樣負載平衡伺服器也就不用把用戶固定的分配到一台伺服器上面了,而且也不用伺服器之間來複製Session訊息,當Session資訊改變時,應用程式伺服器都去共享伺服器修改資訊即可。

缺點

比較依賴共享伺服器,一旦共享伺服器或共享伺服器叢集出現問題,使用者會收到很大影響

在Cookie中傳遞Session資料

在Cookie中存放使用者資訊倒是能排除一個不穩定的因素,但是Cookie在安全方面還是有隱患,而且Cookie也有長度的限制。

')​​.addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了Session 在分散式系統中的處理,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24
cookie存在哪裡 cookie存在哪裡 Dec 20, 2023 pm 03:07 PM

Cookie通常儲存在瀏覽器的Cookie資料夾中的,瀏覽器中的Cookie檔案通常以二進位或SQLite格式存儲,如果直接開啟Cookie文件,可能會看到一些亂碼或無法讀取的內容,因此最好使用瀏覽器提供的Cookie管理介面來檢視和管理Cookie。

電腦上的cookie在哪裡 電腦上的cookie在哪裡 Dec 22, 2023 pm 03:46 PM

電腦上的Cookie儲存在瀏覽器的特定位置,具體位置取決於使用的​​瀏覽器和作業系統:1、Google Chrome, 儲存在C:\Users\YourUsername\AppData\Local\Google\Chrome\User Data\Default \Cookies中等等。

session失效怎麼解決 session失效怎麼解決 Oct 18, 2023 pm 05:19 PM

session失效通常是由於 session 的生存時間過期或伺服器關閉導致的。其解決方法:1、延長session的生存時間;2、使用持久化儲存;3、使用cookie;4、非同步更新session;5、使用會話管理中介軟體。

PHP Session 跨域問題的解決方法 PHP Session 跨域問題的解決方法 Oct 12, 2023 pm 03:00 PM

PHPSession跨域問題的解決方法在前後端分離的開發中,跨域請求已成為常態。在處理跨域問題時,我們通常會涉及session的使用和管理。然而,由於瀏覽器的同源策略限制,跨域情況下預設無法共享session。為了解決這個問題,我們需要採用一些技巧和方法來實現session的跨域共享。一、使用cookie跨域共享session最常

手機cookie在哪裡 手機cookie在哪裡 Dec 22, 2023 pm 03:40 PM

手機上的Cookie儲存在行動裝置的瀏覽器應用程式中:1、在iOS裝置上,Cookie儲存在Safari瀏覽器的Settings -> Safari -> Advanced -> Website Data中;2、在Android裝置上,Cookie儲存在Chrome瀏覽器的Settings -> Site settings -> Cookies中等等。

Cookie工作原理是什麼 Cookie工作原理是什麼 Sep 20, 2023 pm 05:57 PM

Cookie運作方式涉及到伺服器發送Cookie、瀏覽器儲存Cookie以及瀏覽器對Cookie的處理和儲存。詳細介紹:1、伺服器發送Cookie,伺服器會傳送一個包含Cookie的HTTP回應標頭給瀏覽器。這個Cookie包含了一些訊息,例如使用者的身份認證、偏好設定或購物車內容等,瀏覽器接收到這個Cookie後,會將它儲存在使用者的電腦上;2、瀏覽器儲存Cookie等等。

清除cookie有什麼影響嗎 清除cookie有什麼影響嗎 Sep 20, 2023 pm 06:01 PM

清除cookie產生的影響有重置個人化設定和偏好、影響廣告體驗、破壞登入狀態和記住密碼功能。詳細介紹:1、重置個人化設定和偏好,如果清除了cookie,購物車將被重置為空,需要重新添加商品,同樣清除cookie還會導致在社群媒體平台上的登入狀態遺失,需要重新輸入使用者名稱和密碼;2、影響廣告體驗,如果清除了cookie,網站將無法了解我們的興趣和偏好,會顯示無關的廣告等等。

瀏覽器cookie的儲存位置詳解 瀏覽器cookie的儲存位置詳解 Jan 19, 2024 am 09:15 AM

隨著網路的普及,我們使用瀏覽器進行上網已經成為一種生活方式。在日常使用瀏覽器過程中,我們常會遇到需要輸入帳號密碼的情況,如網購、社交、郵件等。這些資訊需要瀏覽器記錄下來,以便下次造訪時不需要再次輸入,這時候Cookie就派上了用場。什麼是Cookie? Cookie是指由伺服器端發送到使用者瀏覽器上並儲存在本地的一種小型資料文件,它包含了一些網站的使用者行為

See all articles