C++轻量级微服务_微服务的部署

进入正题之前,我们需要非常清楚的知道微服务的特点。只有明确了微服务自身的特点后,才能有目标的选择微服务的部署形式及方案。下面就让我们明晰下微服务的特点:

  1. 资源:每个微服务对资源的要求不一样
  2. 可扩展性:每个微服务都有具体的要求
  3. 监控:每个微服务的监控方式及要求不一样
  4. 框架:开发框架及语言可能不一样

但是无论我们选择哪一种部署方案或是实施怎样的部署方式,都需要达到以下目标:

  1. 快速:快速的实现服务的部署,尽量做到时间最少、成本最低
  2. 资源要求:按照服务要求分配指定的资源,能够实现资源的控制及监控
  3. 管理:实现微服务部署的管理性

基于微服务的特点及部署方案的要求,我们将探讨对比分析以下几种方案的优劣

  1. 一个主机,多个服务

主机可以是物理机或是虚拟机。这个方案理解起来很简单,就是一个主机上部署多个服务。形式如下图:

4e021cf06aa87a38b00bdacb6f2652e6.png
一个主机,多个服务

当然这种方案如果按照进程区别的话,可能有如下的不同。1、每个进程一个服务;2、多个服务共享一个进程,比如:一个tomcat服务器部署了多套服务。

这中方案对资源的利用率较高,由于一个tomcat服务器可以部署多套服务,并且共享一个主机资源。而且部署方式非常快,只需要上传我们的程序打包文件到指定的服务器即可。服务的启动也非常的快,我们只是需要中间件(tomcat)即可。但是这种方案也有他真正的缺点,没有相关的方案可以实现服务的隔离。资源的控制不好实现,如果其中一个服务用尽了内存,会对其他服务造成很大的影响。

2.每个虚拟机一个服务

每个服务被打包成一个虚拟机镜像,每个服务在虚拟机上运行。图解如下:

4e26003517e0ebc0e0c9be29de5d13d2.png
每个虚拟机,一个服务

这种方式能方便的实现资源的控制,每个虚拟机都会有指定的Cpu、内存等;而且每个虚拟机相互隔离,非常的安全。由于现在的云服务供应商都提供了便利的工具,我们可以借助云框架体系。但是这种方案对资源利用率比较的低,每个服务均需要完整的VM及操作系统。由于虚拟机的镜像文件比较大,会导致打包、部署、启动的时间比较的长。由于轻量级的虚拟机镜像开始盛行,这种问题将会逐步得到解决。虚拟机的部署需要运维人员承担比较重的管理工作。

3.每个容器一个服务

我们可以对每个容器设置资源,控制每个容器的资源使用情况。

03b6d56dc353f3910915fad1e63e91a0.png
每个容器,一个服务

每个服务会被打包成为容器镜像,每个容器镜像会包含服务运行所需要的所有资源。这中方案和第二个方案非常的类似,我们能非常轻松的实现资源的控制及监控、服务的隔离。相比较第二种方案,容器方案是一种非常轻量级的方案,但是虚拟机的基础建设比较好。

下面我将用表格的形式对上述三种方式坐下对比分析:

1d5521158580fb38e68368fc79ea2d08.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值