2011-01-25 49 views
1

有些人認爲,使用Shared Nothing體系結構實現每個Web應用程序是可能的,甚至是必要的。如何使用這種建築風格來實現帶有購物車的網上商店?如何實現具有無共享體系結構的Web商店

通常可以使用會話來實現網上商店。在這種情況下,我必須以另一種方式實現它,以便服務器上不會存儲有關購物車的信息。但是,有必要將購物車內容包含在隱藏字段中,以便它們可以在每個請求中傳遞給服務器。這是使用Shared Nothing架構的網店的解決方案嗎?

對於如何實現webapps的無共享體系結構,您有什麼想法嗎?

+0

「無共享」並不意味着「沒有會話」 – skaffman 2011-01-25 12:55:20

回答

2

雖然我從來沒有明確地出去建立一個無共享(SN)爲基礎的系統,我建議任何人誰說,這是必須使用「純」 SN建築師的WebApp是:

  • 有預算如此之大,他們可以爲每一層使用一百萬個羣集。
  • 學者們從來沒有真正實現過任何東西。

如果你有一個網絡服務器集羣,並以某種方式負載均衡流量,這意味着你不能保證同一個web服務器將處理給定會話的每個呼叫 - 那麼是的, SN的原則適用:您不能引入服務器關聯。

但是爲了擴展這個「每一個」網絡應用程序是荒謬的。

像所有其他架構一樣,SN就像工具 - 它們是問題的解決方案;問題確定瞭解決方案 - 而不是相反。

1

至於我在網上商店的經驗,無共享架構比基於會話架構更好。由於會議過期,我的購物卡消失了,我已經有很多次都非常惱火了! AJAX與否,webapp應該至少將用戶的選擇存儲在cookie中,或者在可用時存儲HTML5存儲和其他奇妙的機制。

但是,基於HTTP會話的應用程序也有其優勢,尤其是在服務器端爲用戶緩存資源時,這些資源的收購成本很高 - 典型用於重負載重商業邏輯交易系統。在許多情況下,混合解決方案將是最佳選擇。

所以我的答案是 - 這取決於。您應該編寫需求並選擇最佳選項,而不是選擇最適合的模式或架構的名稱:)

0

您可以使用分佈式緩存(例如memcached)將會話數據存儲在服務器端。

相關問題