失效
每個Publish系統都會連線至多個Dispatcher,每個系統都必須在內容變更時失效。
維護
不用說,Dispatcher和Publish系統的初始設定比較複雜。 但也請記住,「滾動」版本的工作量也更高。 AEM系統在執行時可以而且必須更新。 但是明智的做法是在他們主動處理請求時不要這麼做。 通常您只想更新部分Publish系統,而其他系統則仍在主動提供流量,然後在測試後切換至其他部分。 如果您很幸運,而且可以在部署過程中存取負載平衡器,您可以在此處停用進行維護的伺服器路由。 如果您位在無法直接存取的共用負載平衡器上,寧可關閉要更新的Publish的Dispatcher。 位置愈多,您必須關機的次數就愈多。 如果數量很大並且您計畫經常更新,建議使用一些自動化功能。 如果您沒有自動化工具,繼續擴充無論如何都不是個好主意。
在過去的專案中,我們使用不同的秘訣將Publish系統從負載平衡中移除,而不需要直接存取負載平衡器本身。
負載平衡器通常會「ping」,此為特定頁面,用於檢視伺服器是否正常運作及執行中。 一個簡單的選擇通常是ping首頁。 但是,如果您想要使用ping訊號讓負載平衡器不要平衡流量,您可以選擇其他專案。 您可以建立專用範本或servlet,將其設定為以"up"
或"down"
回應(在內文中或作為http回應代碼)。 該頁面的回應當然不得在Dispatcher中快取,因此一律會從Publish系統全新擷取。 現在,如果您設定負載平衡器以檢查此範本或servlet,您可以輕鬆讓Publish「假裝」它停止運作。 它不會是負載平衡的一部分,而且可以更新。
全球分佈
「全球發佈」是「向外擴充」設定,您在每個Publish系統前有多個Dispatcher — 現已分佈於世界各地,以更接近客戶並提供更優異的效能。 當然,在這種情況下,您沒有中央負載平衡器,而是有基於DNS和地理IP的負載平衡配置。
水平縮放
即使是在本機資料中心,「向外擴充」拓撲(在每個Publish系統前面有多個Dispatcher)也有一些優點。 如果您發現Apache Server因高流量(以及良好的快取命中率)而造成效能瓶頸,而且您無法再擴充硬體(藉由新增CPU、RAM和更快的磁碟),您可以藉由新增Dispatcher來提升效能。 這稱為「水平縮放」。 然而,這有限制,尤其是當您經常讓流量失效時。 我們將在下一節中說明此效果。
向外擴展拓朴的限制
新增Proxy伺服器通常應該會提高效能。 但是,在某些情況下,新增伺服器實際上可能會降低效能。 如何進行? 假設您有一個新聞入口網站,您每分鐘都會在此介紹新文章和頁面。 Dispatcher會透過「自動失效」而失效:每當發佈頁面時,同一網站上的快取中的所有頁面都會失效。 這是一個有用的功能 — 我們在本系列的第1章中已經說明這個功能 — 但也表示當您的網站經常發生變更時,您經常會使快取失效。 如果每個Publish例項只有一個Dispatcher,則第一個請求頁面的訪客會觸發該頁面的重新快取。 第二個訪客已取得快取版本。
如果您有兩個Dispatcher,則第二個訪客有50%的機會未快取頁面,然後他會在再次轉譯該頁面時體驗到較大的延遲。 每個Publish擁有更多的Dispatcher會讓情況變得更糟。 實際上是Publish伺服器會收到更多負載,因為它必須分別重新呈現每個Dispatcher的頁面。
在經常進行快取排清的擴充案例中效能降低。