部署模式 - 每一個主機多個服務實例

本文說明了微服務架構的部署模式之一:每一個主機多個服務實例。html

場景

已經經過微服務架構的分解模式(參考按業務領域分解模式劃分微服務),將整個應用程序劃分爲多個獨立的微服務。架構

目標

  • 每一個服務由多個服務實例組成,用於提升吞吐量和可用性。
  • 服務必須可獨立部署和擴展。
  • 服務實例須要彼此隔離。
  • 須要可以快速構建和部署服務。
  • 須要可以約束服務所消耗的資源(CPU和內存)。
  • 須要監視每一個服務實例的性能和行爲。
  • 部署必須是可靠的。
  • 部署必須是經濟高效的。

方法

在同一個主機(物理或虛擬機)上運行不一樣服務的多個實例。有2種部署方式:微服務

  • 在同一個JVM進程中部署一個服務實例。例如,每一個服務實例都做爲獨立進程運行在Tomcat或Jetty中。
  • 在同一個JVM進程中部署多個服務實例。例如,Web應用程序或OSGI捆綁軟件。

優勢

每一個主機一個服務實例模式的資源利用率更高。性能

缺點

  • 存在資源需求衝突的風險。
  • 存在版本依賴衝突的風險。
  • 難以限制服務實例的資源消耗。
  • 若是在同一JVM進程中部署了多個服務實例,則很難監測每一個服務實例的資源消耗,也很難針對每一個實例作資源隔離。

相關模式

相關文章
相關標籤/搜索