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

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

场景

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

目标

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

方法

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

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

优点

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

缺点

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Albert陈凯

Hadoop数据分析平台实战——020Hadoop Shell命令(初学跳过)离线数据分析平台实战——020Hadoop Shell命令(可跳过)

离线数据分析平台实战——020Hadoop Shell命令(可跳过) Hadoop Shell命令简单描述 Hadoop的Shell命令主要分为两类: 一类是启...

3415
来自专栏丑胖侠

Linux下修改jar、zip等文件内的文件

看到很多同事在Linux环境下修改jar包内的文本文件或zip中的文本文件时,经常是先把jar包或zip包下载下来,然后修改,再上传。其实Linux针对此类文件...

2489
来自专栏云计算教程系列

在CVM上使用rbenv安装RoR

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web应用框架,它是严格按照MVC结构开发的。它努力使自身保...

1828
来自专栏技术专栏

Hadoop2.x linux&mac下分布式安装部署

详情请参考 http://hadoop.apache.org/docs/r2.5.2/hadoop-project-dist/hadoop-common/Si...

1584
来自专栏xingoo, 一个梦想做发明家的程序员

Elasticsearch集群配置以及REST API使用

ES安装与启动   在官网下载压缩包,解压后直接运行bin目录下的.bat文件即可。下载地址戳这里。 ? ES配置集群   Elasticsearch配置集群很...

19710
来自专栏深度学习之tensorflow实战篇

解决SSH连接linux中文显示乱码问题

添加windows下mysql服务 以管理员身份打开cmd,执行 mysqld –install net stop mysql 忘记密码找回 找到m...

5045
来自专栏自由而无用的灵魂的碎碎念

使用Oracle SQL Developer 连接SQL Server

上次,将MySQL数据迁移到Oracle介绍了如何使用oracle sql developer连接mysql。同样,sql server的连接也比较相似。

1551
来自专栏技术专栏

HBase 在Linux&Mac 下的安装和配置

详情参考 http://hbase.apache.org/book.html#quickstart

2651
来自专栏颇忒脱的技术博客

利用VisualVm远程监控Java进程

要实现远程监控Java进程,必须在远程主机(运行Java程序的主机)上跑一个jstatd进程,这个进程相当于一个agent,用来收集远程主机上的JVM运行情况,...

2061
来自专栏问天丶天问

eclipse 运行springboot项目

4343

扫码关注云+社区

领取腾讯云代金券