部署模式 - 每一个主机多个服务实例

本文说明了微服务架构的部署模式之一:每一个主机多个服务实例。html

场景

已经经过微服务架构的分解模式(参考按业务领域分解模式划分微服务),将整个应用程序划分为多个独立的微服务。架构

目标

  • 每一个服务由多个服务实例组成,用于提升吞吐量和可用性。
  • 服务必须可独立部署和扩展。
  • 服务实例须要彼此隔离。
  • 须要可以快速构建和部署服务。
  • 须要可以约束服务所消耗的资源(CPU和内存)。
  • 须要监视每一个服务实例的性能和行为。
  • 部署必须是可靠的。
  • 部署必须是经济高效的。

方法

在同一个主机(物理或虚拟机)上运行不一样服务的多个实例。有2种部署方式:微服务

  • 在同一个JVM进程中部署一个服务实例。例如,每一个服务实例都做为独立进程运行在Tomcat或Jetty中。
  • 在同一个JVM进程中部署多个服务实例。例如,Web应用程序或OSGI捆绑软件。

优势

每一个主机一个服务实例模式的资源利用率更高。性能

缺点

  • 存在资源需求冲突的风险。
  • 存在版本依赖冲突的风险。
  • 难以限制服务实例的资源消耗。
  • 若是在同一JVM进程中部署了多个服务实例,则很难监测每一个服务实例的资源消耗,也很难针对每一个实例作资源隔离。

相关模式

相关文章
相关标签/搜索