進階快取

負載平衡 Caching Proxy 叢集

如果要提供更進階的快取功能,請利用 Caching Proxy 作為反向 Proxy 來與 Load Balancer 元件一起使用。 您可以整合快取和負載平衡功能來建立既有效、又更好管理的 Web 效能基礎架構。

圖 4 描述如何結合 Caching Proxy 和 Load Balancer,即使是在高度需求的情況之下,也能有效遞送 Web 內容。。 在這個配置中,Proxy 伺服器 (4) 會配置成截取其 URL 中含有內容主機叢集 (7) 之主機名稱的要求,此內容主機是由 Load Balancer (6) 來進行負載平衡。

圖 4. 作為負載平衡叢集之 Proxy 伺服器的 Caching Proxy
此圖描述作為負載平衡叢集之代理的 Proxy 伺服器

當用戶端 (1) 要求 X 檔時,要求會穿越網際網路 (2),並透過企業的網際網路閘道 (3) 進入企業的內部網路。 Proxy 伺服器會截取要求,以它自己的 IP 位址作為原始位址來產生新的要求,然後將新的要求傳給在叢集位址的 Load Balancer。 Load Balancer 利用它的負載平衡演算法,來判斷哪部內容主機目前最能夠滿足對於 X 檔的要求。 這部內容主機會將 X 檔傳回給 Proxy 伺服器,而不會透過 Load Balancer 來進行。 Proxy 伺服器會依照上述相同方式決定是否快取這個檔案,並將它遞送給一般使用者。

快取動態內容

Caching Proxy 的「動態快取」外掛程式也提供了進階快取功能。 當與 WebSphere® Application Server 一起使用時,Caching Proxy 能夠快取 JavaServer Pages (JSP) 形式的動態內容和 WebSphere Application Server 所產生的 Servlet 回應,為它們提供服務以及使它們失效。

一般而言,具備無限有效期的動態內容必須標示「不快取」,因為標準時間型快取到期邏輯無法確保能夠將它即時移除。 「動態快取」外掛程式的事件驅動到期邏輯,使 Proxy 伺服器能夠快取具備無限有效期的內容。 在網路邊緣快取這類內容,可以緩和內容主機反覆呼叫 Application Server 來滿足用戶端所發出之要求的情況。 這可以帶來下列好處:

Servlet 回應快取適用於以應用程式邏輯為到期根據,或以資料庫訊息之類的事件為到期根據的動態產生網頁。 雖然這類頁面的生命期限有限,但在建立時無法設定存活時間值,因為無法事先得知到期的觸發。 當這類頁面的存活時間設為零之時,內容主機在提供動態內容時會導致非常不利的結果。

Caching Proxy 和 Application Server 的動態快取同步化,由兩個系統來共同負責。 例如,提供目前天氣預測的應用程式所動態建立的公用網頁,可以由 Application Server 匯出,由 Caching Proxy 快取。 之後,Caching Proxy 可以將應用程式的執行結果重覆提供給許多不同的使用者,直到收到頁面無效的通知。 Caching Proxy 的 Servlet 回應快取內容會保持有效,直到因為快取壅塞、Caching Proxy 配置檔中的 ExternalCacheManager 指引所設的預設逾時到期,或 Caching Proxy 收到失效訊息引導它將內容從快取中清除,而導致 Proxy 伺服器移除項目為止。 失效訊息起源於擁有內容的 WebSphere Application Server,且會傳送到每個已配置的 Caching Proxy。

註:
Caching Proxy 通常無法快取動態產生的個人頁面(例如顯示使用者購物車內容的頁面),而且也不應快取。 只有在配置成執行鑑別和授權,以確保個人頁面只會提供給預期的使用者時,Caching Proxy 才能夠快取及提供個人頁面。

其他快取特性

Caching Proxy 還提供了其他主要進階快取特性: