每个主机一个服务实例

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

场景

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

目标

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

方法

在同一个主机(通常是虚拟机)上运行一个服务的一个实例。

优点

  • 通过增加实例数量可以直接扩展服务。
  • VM封装了构建服务的技术细节,所有服务都以完全相同的方式启动和停止。
  • 每个服务实例都是隔离的。
  • VM可以针对服务实例消耗的CPU和内存做精确的限制。
  • 虚拟机管理工具能提供成熟且功能丰富的基础架构。

缺点

  • 资源利用率较低。

相关模式

原文地址:https://www.cnblogs.com/yorkwu/p/9498225.html

时间: 2024-10-26 10:25:47

每个主机一个服务实例的相关文章

《连载 | 物联网框架ServerSuperIO教程》2.服务实例的配置参数说明

感谢唯笑志在分享 原博主原地址:http://www.cnblogs.com/lsjwq/ 一.综述 SuperIO(SIO)定位在PC终端(上位机)应用,它只有一个服务实例,配置参数是全局属性.但是,ServerSuperIO(SSIO)与SuperIO(SIO)定位不一样,SSIO定位在服务器端,不管是串口通讯模式,还是网络通讯模式,都支持多服务实例,所以每个服务实例都有自己的配置参数,全部配置参数的定义在ServerConfig.cs文件中. 如下图示意: 二.配置参数说明 1 2 3 4

服务的扩展性(如何创建具有可扩展性的服务实例,缓存以及数据库)

转自:http://www.cnblogs.com/loveis715/p/5097475.html 在编写一个应用时,我们常常考虑的是该应用应该如何实现特定的业务逻辑.但是在逐渐发展出越来越多的用户后,这些应用常常会暴露出一系列问题,如不容易增大容量,容错性差等等.这常常会导致这些应用在市场的拓展过程中无法快速地响应用户的需求,并最终失去商业上的先机. 通常情况下,我们将应用所具有的用来避免这一系列问题的特征称为非功能性需求.相信您已经能够从字面意义上理解这个名词了:功能性需求用来提供对业务逻

《连载 | 物联网框架ServerSuperIO教程》- 14.配制工具介绍,以及设备驱动、视图驱动、服务实例的挂载

注:ServerSuperIO二次开发套件授权码申请---截止到:2016-12-09 1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架ServerSuperIO教程>2.服务实例的配置参数说明 <连载 | 物联网框架ServerSuperIO教程>- 3.设备驱动介绍 <连载 | 物联网框架ServerSuperIO教程>-4.如开发

在一个高并发系统中 如果突然出现一个应用或者说一个服务突然变得很慢,应该怎么排查?

声明:该总结为网友朋友总结,本人是归纳成文,方便各网友学习交流. 这个是考线上排查问题能力,没有标准答案,作为开发,假设这种情景出现你怎么诊断问题? 首先:想知道,在实际情况下,怎么知道[一个应用或者说一个服务突然变得很慢]?调用访问的时候会发现的,对于业务流程比较熟悉很重要,先能够初步圈出,可能出现问题的地方,服务监控是必须的,做业务必须要知道自己服务的状态. 1.首先就是想看日志,后来想想看日志确实不太可行,并发量太大的情况下,查日志会很慢,(看日志,pstack strace gdb).

angular中的$q服务 实例

用于理解$q服务 参考:http://www.zouyesheng.com/angular.html#toc39 广义回调管理 和其它框架一样, ng 提供了广义的异步回调管理的机制. $http 服务是在其之上封装出来的.这个机制就是 ng 的 $q 服务. 不过 ng 的这套机制总的来说实现得比较简单,按官方的说法,够用了. 使用的方法,基本上是: 通过 $q 服务得到一个 deferred 实例 通过 deferred 实例的 promise 属性得到一个 promise 对象 promi

同一个PC只能运行一个应用实例(考虑多个用户会话情况)

原文:同一个PC只能运行一个应用实例(考虑多个用户会话情况) 1 class Program 2 { 3 private static Mutex m; 4 5 [STAThread] 6 static void Main() 7 { 8 bool createNew = false; 9 10 /* 11 * 在运行终端服务的服务器上,已命名的系统 mutex 可以具有两级可见性. 12 * 如果名称以前缀“Global\”开头,则 mutex 在所有终端服务器会话中均为可见. 13 * 如果

Nagios设置用户只能查看所有主机和服务

nagios-4.0.6新增用户并设置只能查看所有主机和服务,不能修改任何主机和服务的配置 1.        新建一个Nagios管理界面认证用户 [[email protected] ~]# htpasswd/usr/local/nagios/etc/htpasswd.users yangkuo New password: Re-type new password: Adding password for user yangkuo 2.        配置cgi.cfg文件,黄色为新增内容

12C RAC中的一个数据库实例自动crash并报ORA-27157、ORA-27300等错误

rhel7.2上安装12C RAC数据库后,其中一个数据库实例经常会自动crash.查看alert日志发现以下错误信息: Errors in file /d12/app/oracle/diag/rdbms/rac12c/rac12c2/trace/rac12c2_j000_21047.trc: ORA-27157: OS post/wait facility removed ORA-27300: OS system dependent operation:semop failed with st

把linux可执行程序做成一个服务

在linux系统启动的时候,我们可以看到很多服务性程序一个接一个的被启动(就是那些后面有一个兰色[OK]的行),这些在后台运行的程序为我们使用计算机起了很重要的作用,以这种方式运行的程序有以下特点: 开机启动.关机停止.后台运行 通过service 命令控制或查看对应的程序的运行状态 恩,不错,那怎么把我们自己编制的程序做成这样的一个服务呢? 废话少说,主要分以下3步:     1.把可执行程序放到一个linux系统可以找到的地方. 在linux命令提示符下输入env ,回车后可看到环境变量,里