更新時間:2021-11-18 10:17:09 來源:動力節點 瀏覽940次
其實就是對請求過來的ip地址對你的多少臺可用的服務器進行取模,然后就會把你的請求通過Nginx的反向代理給分發到對應的服務器上。(這里會把可用的服務器放到一個數組中,如果取模得到的結果是幾,就把請求分到服務器數組中的下標為幾的服務器上)
具體實現:
需要你在Nginx.conf文件中進行對應的修改,根據自己的可用服務器
upstream backend{
ip_hash;
server 192.168.128.1:8080 ;
server 192.168.128.2:8080 ;
server 192.168.128.3:8080 down;
server 192.168.128.4:8080 down;
}
server {
listen 8081;
server_name test.csdn.net;
root /home/system/test.csdn.net/test;
location ^~ /Upload/upload {
proxy_pass http://backend;
}
}
這種實現的優缺點:
這個解決方案其實就是當用戶請求的時候,把產生的sessionID給復制到系統所有的服務器中,這樣就能保證當用戶請求的時候從服務器A可能調用到服務器B上的模塊的時候,也能保證服務B也有該用戶的sessionID,這樣就不會再次讓用戶進行再次登錄操作了。也就解決問題了。
具體代碼中如何實現session復制呢?
使用session復制的優缺點:
這種方案呢,其實就是把每次用戶的請求的時候生成的sessionID給放到Redis的服務器上。然后在基于Redis的特性進行設置一個失效時間的機制,這樣就能保證用戶在我們設置的Redis中的session失效時間內,都不需要進行再次登錄。
如何進行代碼的實現:
使用Redis實現session共享的優缺點:
其實還可以把session放到cookie中去,因為每次用戶請求的時候,都會把自己的cookie放到請求中,所以這樣就能保證每次用戶請求的時候都能保證用戶在分布式環境下,也不會在進行二次登陸。
如果您想了解更多相關知識,可以關注一下動力節點的Spring Session教程,里面的內容豐富,通俗易懂,適合小白學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習