1. 程式人生 > >單點登入SSO-使用session共享方式

單點登入SSO-使用session共享方式

Java在叢集中進行單點登入這裡記錄兩種實現方式

環境:tomcat.叢集

方法:將使用者資訊存入session中,實現session共享

第一種:對tomcat進行session複製

進行tomcat的session共享,配置tomcat叢集,設定好session的過期時間,tomcat配置好集群后,會不停的向叢集中的其他的tomcat廣播自己的session資訊,其他的tomcat做session同步,可以保證所有的tomcat中的session中的內容都是一致的

優點:不需要進行額外的開發,只需要搭建tomcat叢集即可,簡單

缺點:tomcat是全域性的session複製,叢集內每個tomcat的session完全同步(也就是然後時候完全一樣的),在大規模應用的時候,使用者過多,叢集內的tomcat數量過多,session的全域性複製會導致叢集效能下降,因此,tomcat的數量不能太多,5個以下為好,還有一些其他的缺點(不能解決分散式工程的session共享問題,例如:支付寶和淘寶單點登入的問題)

第二種:實現單點登入系統,提供服務介面,把session資料存放在redis中。

redis可以設定key的生存時間,訪問速度快,效率高。

優點:redis存取速度快,不會出現多個節點以及session複製的問題,而且效率高

缺點:需要時間去開發一套系統