微服務體系三維可縮放模型

本文說明了微服務體系的可縮放模型中,3種維度上縮放能力的優缺點。html

X軸縮放

X軸縮放包括在負載均衡器後面運行的應用程序的多個副本。若是有N個副本,則每一個副本處理1 / N的負載。
這是一種簡單,經常使用的擴展應用程序的方法。
這種方法的一個缺點是,因爲每一個副本可能訪問全部數據,所以高速緩存須要更多的內存。這種方法的另外一個問題是,它沒有解決大型應用程序開發複雜性的問題。數據庫

Y軸縮放

Y軸縮放將應用程序拆分爲多個不一樣的服務。每項服務都負責一項或多項密切相關的職能。
有幾種不一樣的方法能夠將應用程序分解爲服務。一種方法是使用基於動詞的分解並定義實現單個用例的服務。另外一種選擇是經過名詞來分解應用程序,並建立負責與特定實體相關的全部操做的服務。應用程序也可能混合使用基於動詞和基於名詞的分解方式。緩存

Z軸縮放

使用Z軸縮放時,每一個服務器都運行相同的代碼副本。在這方面,它相似於X軸縮放。最大的區別是每一個服務器只負責數據的一個子集。系統的某些組件負責將每一個請求路由到適當的服務器。
一種經常使用的路由標準是根據請求的屬性,例如被訪問實體的主鍵。另外一種常見的路由標準是客戶類型。例如,經過將其請求路由到具備更多容量的不一樣服務器集,應用程序能夠爲付費客戶提供比免費客戶更高的服務等級。服務器

Z軸分割一般用於縮放數據庫

基於每一個實體的數據行,經過一組數據庫對數據進行分區(也稱爲分片)。負載均衡

Z軸縮放具備許多優勢

  • 每一個數據庫服務器僅處理數據的子集;
  • 這能夠提升緩存利用率並減小內存使用和I / O流量;
  • 它還提升了事務可伸縮性,由於請求一般分佈在多個數據庫服務器上;
  • Z軸縮放可改善故障隔離,由於故障只會使部分數據不可訪問。

Z軸縮放有一些缺點

  • 應用程序複雜性增長;
  • 須要實現一個分區方案,這可能很棘手,特別是若是咱們須要從新分區數據;
  • 不能解決大型應用程序開發複雜性的問題。要解決這些問題,咱們須要Y軸縮放
相關文章
相關標籤/搜索