session
是伺服器為客戶端建立的乙個會話,儲存使用者的相關資訊,用以標識使用者身份等。在單伺服器環境下是不需要考慮會話的一致性的問題的,但是在集群環境下就會出現一些問題,假如乙個使用者在登入請求時負載均衡到了a
伺服器,a
伺服器為其分配了session
,下次請求資料時被分配到了b
伺服器,此時由於b
伺服器不存在此使用者的session
,此使用者會被重定向到登入頁面,這種情況是不合理的業務邏輯,所以需要維護session
的一致性。
多個伺服器之間互相同步session
,即a
伺服器生成乙個session
資訊後同步傳輸到b
、c
、d
等伺服器,同樣b
、c
、d
伺服器生成session
資訊後也需要同步到a
,這樣每個伺服器之間都包含全部的session
優點缺點通過將負載均衡伺服器進行修改,通過對返回給使用者的session id
或者使用者請求的ip
位址進行標記,也就是使用第四層傳輸層中讀取網路層的ip
或者是在第七層中讀取http
協議中某些屬性來做hash
,保證對於此使用者的請求全部落到同一臺伺服器上
優點缺點將資料直接儲存到客戶端比如cookie
或請求頭中,每次請求客戶端自動攜帶資料資訊
優點缺點將session
儲存在一台單獨的伺服器中的資料庫中,例如mysql
、oracle
、sqlserver
、redis
、mongodb
等等,各server
伺服器需要使用者資訊時攜帶session id
對於集中儲存伺服器進行請求,進而獲取使用者資訊
優點缺點
分布式session一致性
在多台後台伺服器的環境下,我們為了確保乙個客戶只和一台伺服器通訊,我們勢必使用長連線。使用什麼方式來實現這種連線呢,常見的有使用nginx自帶的ip hash來做,我想這絕對不是乙個好的辦法,如果前端是cdn,或者說乙個區域網的客戶同時訪問伺服器,導致出現伺服器分配不均衡,以及不能保證每次訪問都粘滯...
分布式一致性
分布式一致性是指在分布式環境中對某個副本資料進行更新操作時,必須確保其他副本也會更新,避免不同副本資料不一致。分布式系統乙個重要的問題時解決資料複製,一是為了增加系統的可用性防止單點故障,二是提高系統可用性,通過負載聚恆,使分布在不同位置的資料副本能夠提供服務。理想狀態下,當然希望分布式系統能夠實現...
分布式一致性
分布式系統的乙個重要問題是資料的複製。對資料的複製一般有兩個原因 資料複製的主要難題是保持各個副本的一致性。即在更新乙個副本時,必須確保同時更新其他的副本,否則資料的各個副本將不再相同。一致性模型實質上是程序和資料儲存之間的乙個約定。正常情況下,乙個資料項上執行讀操作時,它期待該操作返回的是該資料在...