1. 程式人生 > >服務部署之單個主機多個服務例項

服務部署之單個主機多個服務例項

背景

您已應用微服務架構模式並將系統架構為一組服務。每個服務都部署為一組服務例項,以實現吞吐量和可用性。

問題

如何打包和部署服務?

訴求

  • 服務使用各種語言,框架和框架版本編寫
  • 每個服務由多個服務例項組成,用於吞吐量和可用性
  • 服務必須可獨立部署和擴充套件
  • 服務例項需要彼此隔離
  • 您需要能夠快速構建和部署服務
  • 您需要能夠約束服務所消耗的資源(CPU和記憶體)
  • 您需要監視每個服務例項的行為
  • 您希望部署可靠
  • 您必須儘可能經濟高效地部署應用程式

解決方案

在主機(物理或虛擬機器)上執行不同服務的多個例項。

有多種方法可以在共享主機上部署服務例項,包括:

  • 將每個服務例項部署為JVM程序。例如,每個服務例項的Tomcat或Jetty例項。
  • 在同一JVM中部署多個服務例項。例如,作為Web應用程式或OSGI捆綁包。

結果

這種模式的好處包括:

  • 比每個主機模式的服務例項更有效的資源利用率

這種方法的缺點包括:

  • 資源需求衝突的風險
  • 存在衝突的依賴版本的風險
  • 很難限制服務例項消耗的資源
  • 如果在同一程序中部署了多個服務例項,則很難監視每個服務例項的資源消耗。它也不可能隔離每個例項

相關模式

每個主機的單一服務例項模式是另一種解決方案。 無伺服器部署模式是另一種解決方案。

原文連結