2016-09-06 37 views
1

我正在閱讀有關基於服務器的身份驗證的問題。我需要幫助,詳細闡述以下幾點。基於服務器的身份驗證的可伸縮性問題

可伸縮性:由於會話存儲在內存中,因此會提供可伸縮性方面的問題。隨着我們的雲提供商開始複製服務器以處理應用程序負載,會話內存中的重要信息將限制我們的擴展能力。

我似乎不明白爲什麼「......會話記憶中的重要信息會限制我們的縮放能力」,這會限制縮放能力。僅僅是因爲信息正在被複制......所以這與冗餘有關呢?我不這麼認爲。無論如何,任何人都會友好地進一步解釋這一點嗎?非常感激。

回答

0

基於服務器的身份驗證使用會話,而會話又使用本地會話ID。在雲中,當服務器被複制來處理應用程序負載時,一臺服務器很難知道哪些會話在其他服務器上處於活動狀態。現在要解決這個問題,必須執行額外的步驟......例如將會話ID保存到數據庫。但是,隨着服務器日益複製,處理所有這些變得越來越困難。因此,基於服務器或基於會話的身份驗證對於可伸縮性可能存在問題。

1

所指的是無狀態和有狀態的服務器端操作之間的區別。有狀態的服務器保留部分資源(主要是內存),以便保留與某些客戶端相關的狀態,即使服務器實際上對客戶端沒有任何操作,只是等待客戶端回來。這種系統的性能曲線只有在所有可用內存都已滿狀態的情況下才是「線性的」,超出這一點時服務器似乎基本上停頓。無狀態服務器只在實際執行某些操作時才佔用資源,並且一旦完成操作,這些資源就會立即釋放並可用於其他客戶端。這些服務器基本上不受內存限制限制,因此「更容易擴展」。

此外,給出的解釋似乎指的是場景中的情況,即一組不同的機器作爲一個存在於外部世界,實際上它們不存在(通常稱爲機器/服務器的「集羣」)。在這種情況下,如果客戶端已連接到「大單虛擬機」,那麼實際上他只連接到羣集中的「實際機器」中的一個。如果狀態保持在那裏,那麼同一個客戶的後續訪問必須被路由到同一個物理機器,或者這個狀態必須被傳送到下一次訪問發生的任何機器。前者意味着管理職能的實施需要他們自己的一套資源,並且限制了集羣分配負載的自由度(與你想要進行集羣的原因相反),後者意味着額外的網絡流量將限制可擴展性基本上和可用內存一樣。

+0

哇!令人難以置信的細節......實際上,差不多有點太多了。儘管如此,謝謝你。 – Grateful