本文說明了微服務體系的可縮放模型中,3種維度上縮放能力的優缺點。html
X軸縮放包括在負載均衡器後面運行的應用程序的多個副本。若是有N個副本,則每一個副本處理1 / N的負載。
這是一種簡單,經常使用的擴展應用程序的方法。
這種方法的一個缺點是,因爲每一個副本可能訪問全部數據,所以高速緩存須要更多的內存。這種方法的另外一個問題是,它沒有解決大型應用程序開發複雜性的問題。數據庫
Y軸縮放將應用程序拆分爲多個不一樣的服務。每項服務都負責一項或多項密切相關的職能。
有幾種不一樣的方法能夠將應用程序分解爲服務。一種方法是使用基於動詞的分解並定義實現單個用例的服務。另外一種選擇是經過名詞來分解應用程序,並建立負責與特定實體相關的全部操做的服務。應用程序也可能混合使用基於動詞和基於名詞的分解方式。緩存
使用Z軸縮放時,每一個服務器都運行相同的代碼副本。在這方面,它相似於X軸縮放。最大的區別是每一個服務器只負責數據的一個子集。系統的某些組件負責將每一個請求路由到適當的服務器。
一種經常使用的路由標準是根據請求的屬性,例如被訪問實體的主鍵。另外一種常見的路由標準是客戶類型。例如,經過將其請求路由到具備更多容量的不一樣服務器集,應用程序能夠爲付費客戶提供比免費客戶更高的服務等級。服務器
基於每一個實體的數據行,經過一組數據庫對數據進行分區(也稱爲分片)。負載均衡