今天,深層次和羣裏同窗討論關於分佈式系統問題前端
彙總以下:web
客戶端cookies + 服務端 redis = 用戶信息redis
單機應用中,HttpSession是經過Servlet容器建立和管理的,servlet容器一旦中止服務,那麼session也隨之消失;但若是session被保存到redis中,只要redis服務沒停且session在有效期間內,那麼servlet容器中止服務了,session仍是存在的,這有什麼好處了,好處就是servlet容器出現閃停閃修復的狀況,用戶就不用從新登陸了。spring
使用redis存儲用戶會話信息,客戶端web請求每次攜帶cookies,在攔截器中,獲取經過cookies獲取redis中用戶信息跨域
集羣部署時(3臺服務器部署3個tomcat, 其中tomcat部署同一個項目) ,其session是沒法共享的, 可使用spring-session 共享session;瀏覽器
sso登陸tomcat
分佈式系統部署時, 多服務器, session是沒法共享的,這是公認的, 同時頂級域名下, 不一樣服務,前端請求是沒法跨域獲取cookie的,要想實現效果, 參考使用sso登陸 模式;服務器
邏輯: 抽離登陸業務邏輯爲公共服務,統一驗證是否登陸未登陸,反饋cookies等參數; cookie
單點登陸參考: https://yq.aliyun.com/articles/636281 session
A 訪問
A 訪問關聯app2系統
分佈式模式模塊分層簡略模型
寫的問題, 請留言, 不慎感受;