解決方案三:使用Redis作緩存session的統一緩存
這種方案呢,其實就是把每次用戶的請求的時候生成的sessionID給放到Redis的服務器上。而後在基於Redis的特性進行設置一個失效時間的機制,這樣就能保證用戶在咱們設置的Redis中的session失效時間內,都不須要進行再次登陸。
mysql
springsession的原理web
實現原理這裏簡單說明描述:redis
就是當Web服務器接收到http請求後,當請求進入對應的Filter進行過濾,將本來須要由web服務器建立會話的過程轉交給Spring-Session進行建立,原本建立的會話保存在Web服務器內存中,經過Spring-Session建立的會話信息能夠保存第三方的服務中,如:redis,mysql等。Web服務器之間經過鏈接第三方服務來共享數據,實現Session共享!spring
記錄一個小點:sql
Spring Session + Redis實現分佈式Session共享 有個很是大的缺陷, 沒法實現跨域名共享session , 只能在單臺服務器上共享session , 由於是依賴cookie作的 , cookie 沒法跨域spring Session通常是用於多臺服務器負載均衡時共享Session的,都是同一個域名,不會跨域。你想要的跨域的登陸,可能須要SSO單點登陸跨域