2008-08-28 52 views
1

我真的是通過代理問這個問題,另一個團隊在工作中有一個來自我們客戶的變更請求。併發登錄在網絡農場

問題是我們的客戶不希望他們的員工同時用一個以上的用戶登錄。他們被鎖定並共享登錄信息。

既然這是在一個網絡農場,那麼解決這個問題的最好方法是什麼?

不會緩存到數據庫會導致性能問題?

回答

7

你可以看看使用分佈式緩存系統,如memcached

這將解決這個問題非常好(這是遠遠快於數據庫),且具有優異的高速緩存幾乎什麼都太

6

這只是做生意的成本。

是的,緩存到數據庫比緩存在您的網絡服務器上慢。但是你必須將這些狀態信息存儲在一個集中的位置,否則一個Web服務器不會知道用戶登錄到另一個Web服務器。

假設:您試圖阻止單個用戶進行多個併發登錄。

1

這取決於如何完成身份驗證。如果您存儲上次成功的登錄日期時間(無論後端是什麼),那麼也許您可以更改架構以存儲「logged_in」標誌,並且不會涉及額外的性能成本。 (好吧,它根本不乾淨)

3

登錄和註銷時的數據庫操作不會導致性能問題。

  • 如果您使用緩存代理,這將導致一個問題:
  • 用戶將註銷,但將無法直到註銷到達高速緩存重新登錄

你最大的潛在問題可能是:

  • 如果應用程序/箱崩潰沒有機會爲用戶註銷時,用戶的數據庫中的狀態將保持「登錄」。