1 定义
Single Service Instance per Host(单实例单节点)是一种常用的微服务部署模式,微服务的一个实例独立部署在一台主机之上,实例独占该主机运行。该模式有两种变体:Single Service Instance per VM(单实例单虚拟机)和Single Service Instance per Container(单实例单容器)。
2 上下文和问题
系统采用了微服务架构模式并将系统划分为一组服务,为了吞吐量和可用性每个微服务部署多个实例。考虑服务具有下面的特点,如何打包和部署服务是一项挑战:
- 服务使用不同的编程语言,框架或不同版本的框架编写
- 为了提高吞吐量和可用性,每个服务有多个实例
- 服务必须独立部署和扩展
- 服务实例互相隔离
- 需要快速构建并部署一个服务
- 服务使用的资源(cpu和内存)可控制
- 监控每个服务实例的行为
- 服务部署是可靠的
- 尽可能经济高效的部署服务
3 解决方案
采用单实例单节点的模式部署服务实例,每个实例独占主机,两种相关的变体便是:单实例单虚拟机和单实例单容器,现在容器技术应用的越来越广泛,单实例单容器部署模式得到了广泛的应用。
3.1 单实例单虚拟机部署
将服务打包为VM镜像,每个服务实例都是使用该镜像启动的VM实例。
image.png
单实例单容器部署
将服务打包为容器镜像,并将服务实例以容器的方式部署。
image.png
4 优缺点
4.1 优点:
- 服务互相隔离
- 不存在资源和依赖冲突
- 一个服务实例最多消耗一个虚拟/容器的资源
- 监控、管理、部署服务的每个实例非常的简单直接
4.2 缺点:
- 资源利用率不高
- 需要更多的虚拟机/容器
网友评论