2009-10-15 29 views
0

嘿,那裏的傢伙,我是最近的畢業生,看着我正在申請的幾個工作,我發現我需要知道諸如運行時複雜性(足夠直接),緩存(memcached!)和負載平衡問題不知道在這!!)什麼是一些很好的「負載均衡問題」知道?

那麼,我應該嘗試瞭解什麼樣的負載平衡問題和解決方案,或者至少熟悉.net或java作業?

谷歌搜索給我的東西,如網絡負載平衡,但通常不會由軟件開發商管理?

回答

2

我能想到的一件事是會話管理。默認情況下,無論何時獲得會話ID,該會話ID都會指向服務器上的一些內存數據。但是,當您使用負載平衡時,有多個服務器。當數據存儲在機器1的會話中時會發生什麼,但是下一個請求將用戶重定向到機器2?他的會話數據將會丟失。

因此,您必須確保用戶可以爲每個併發請求返回同一臺計算機('粘連接'),或者不使用進程內會話狀態,但不使用進程會話狀態,其中會話數據存儲在例如數據庫中。

1

存在一個加載分佈的概念,其中請求被噴灑在多個服務器上(通常具有會話相關性)。在這裏,沒有關於任何特定服務器可能有多忙的反饋,我們只依靠負載的統計共享。您可以在WAS ND中查看WebSphere Http插件。它實際上工作得很好,即使對於大量的網站而言也是如此。

加載平衡試圖比這更聰明。有些服務器相對負載的反饋決定了新請求的去向。 (即使這樣,會話相關性往往被視爲比平衡負載更高的優先級)。最初在XD中提供的WebSphere On Demand路由器執行此操作。如果您閱讀this文章,您將看到使用的算法種類。

可以實現與網絡的噴霧裝置平衡,他們可以請示「代理商」,其中噴霧器給予反饋的服務器上運行,給出的決定,其中要求應該去的基礎。因此,即使這種基於硬件的方法也可以有一個軟件元素。參見Dynamic Feedback Protocol

0

網絡組合,最大流最小切割定理及其應用