淘淘商城第91讲——SSO系统分析
什么是SSO系統?
SSO英文全稱Single Sign On,即單點登錄。SSO是指在多個應用系統中,用戶只需要登錄一次就可以訪問所有相互信任的應用系統。它包括可以將這次主要的登錄映射到其他應用中用于同一個用戶的登錄的機制。
SSO是目前比較流行的企業業務整合的解決方案之一。
為什么要有單點登錄系統?
首先,我們看看傳統的登錄實現方式,如下圖所示。
這種登錄方式在只有一個web工程的情況下是沒有問題的,但是對于分布式系統來說,由于牽扯到多個系統,如果每訪問一個系統都要輸入一遍用戶名、密碼的話那將會非常麻煩,也是用戶所不能忍受的,這時單點登錄便派上用場了。
傳統模式的工程當用戶訪問量大的時候就難以招架了,這時我們首先考慮到的是使用集群來增加網站的吞吐量,一個Tomcat服務器可以處理大約300個并發,多個Tomcat服務器就可以處理更多的并發了,如下圖所示,表示的就是集群環境下的登錄實現方式。
在這種集群環境下也會存在一個問題,那就是會要求用戶多次登錄。對于這個問題,解決方案一共有兩種,咱們先來看第一種解決方案,即在搭建Tomcat服務器集群時,配置Session復制(或者Session共享),由于不同的Tomcat服務器之間要以廣播的方式來進行Session共享,一旦Tomcat服務器的數量比較多時,廣播便會占據絕大多數帶寬,非常浪費資源,從而使真正的請求難以被處理,一般來說,集群中Tomcat服務器的個數最好不要超過5個。
再來看看第二種解決方案。我們可以使用Session服務器來保存Session信息,使集群中每個節點都是無狀態的。一般來說,單點登錄系統都會使用Redis來模擬Session,實現Session的統一管理,從而解決Session共享的問題,如此一來集群便可以幾乎不受限制的進行擴展了。
與單純的集群相比,我們把登錄單獨拿出來了,并使用Session服務器保存了Session信息,這樣使得集群中每個節點都是無狀態的。
集群和分布式的區別在于,集群是多臺設備干同一件事情,而分布式是不同的設備干不同的事情。
總結
以上是生活随笔為你收集整理的淘淘商城第91讲——SSO系统分析的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于MFC和ACCESS的学生综合素质能
- 下一篇: 我的 FPGA 学习历程(01)—— F