当前位置: 首页 > news >正文

微服务部署的正确策略

微服务部署挑战

单体应用程序的部署意味着您运行单个(通常是大型应用程序)的多个相同副本。这主要是通过配置 N 个服务器(无论是物理服务器还是虚拟服务器)并在每台服务器上运行应用程序的 M 个实例来完成。虽然这看起来非常简单,但通常情况并非如此。然而,它比部署微服务应用程序要容易得多。

如果您计划部署微服务应用程序,那么您必须熟悉这些服务所使用的各种框架和语言。这也是最大的挑战之一,因为每一项服务都有其特定的部署、资源要求、扩展和监控要求。除此之外,部署服务必须快速、可靠且经济高效!

好消息是,可以轻松扩展多种微服务部署模式,以处理来自各种集成组件的大量请求。阅读此博客,了解哪一个最适合您的组织并进行部署\

微服务部署策略

1. 每台主机多个服务实例(物理或虚拟机)

也许部署应用程序的最传统方法是“每主机多个服务实例”模式。在此模式中,软件开发人员配置单个或多个物理或虚拟主机,并在每个主机上运行多个服务实例。此模式有几个变体,包括将每个服务实例作为一个进程或在同一进程中运行多个服务实例的变体。

好处

由于多个服务实例使用相同的服务器及其操作系统,因此资源使用相对高效。

服务实例的部署也相对较快,因为您只需将服务复制到主机并运行它。

例如,如果服务是用 Java 编写的,那么您只需复制 JAR 或 WAR 文件,或者复制源代码(如果它是用 Node.js 或 Ruby 编写的)。

由于没有任何开销,因此以这种模式启动服务也很快。如果服务有其进程,您可以启动它,否则您也可以动态部署到容器中,或者如果该服务是在同一容器进程或进程组中运行的许多实例之一,则重新启动它。

挑战

  • 除非每个实例都是一个单独的进程,否则对服务实例几乎或完全缺乏控制。您无法限制每个实例使用的资源。这会显着消耗主机的内存。
  • 如果多个服务实例在同一进程中运行,则缺乏隔离性。这通常会导致一项行为不当的服务中断同一进程中的其他服务。
  • 部署时出现错误的风险更高,因为部署它的运营团队需要了解服务的最微小的细节。因此,开发团队和运营人员之间的信息交换是消除所有复杂性的必要条件。

2. 每台主机的服务实例(物理或虚拟机)

每主机服务实例模式是部署微服务的另一种方法。这允许您在其主机上单独运行每个实例。它有两个专门化:每个虚拟机的服务实例和每个容器的服务实例。

每个虚拟机服务实例模式允许您将每个服务打包为虚拟机 (VM) 映像,例如 Amazon EC2 AMI。每个实例都是使用该 VM 映像运行的 VM。使用这种模式的流行应用程序之一是 Netflix 的视频流服务。要构建自己的虚拟机,您可以配置持续集成服务器(例如 Jenkins)或使用 packer.io。

好处

使用每个虚拟机一个服务实例模式的最大好处之一是它使用有限的内存并且无法从不同服务中窃取资源,因为它是独立运行的。

它允许您利用 AWS 等成熟的云基础设施来利用负载平衡和自动扩展。

它密封了服务的实现技术,因为一旦服务被打包为虚拟机,它就变成了黑匣子。它使部署变得更加简单和可靠。

挑战

  • 由于典型公共 IaaS 中的虚拟机通常具有固定大小,因此它可能没有得到完全利用。资源利用效率较低最终还会导致部署成本较高,因为 IaaS 提供商通常对虚拟机收费,无论虚拟机是闲置还是繁忙。
  • 最新版本的部署通常很慢。这是因为 VM 映像因其大小而创建和实例化速度很慢。这个缺点通常可以通过使用轻量级虚拟机来克服。
  • 除非您不使用工具来构建和管理虚拟机,否则每个虚拟机一个服务实例模式对于您和您的团队来说通常非常耗时。这通常是一个乏味的过程,但好消息是可以通过使用诸如 Box fusion 等各种解决方案来解决该问题。

3. 每个容器的服务实例

在这种模式下,每个服务实例都在各自的容器中运行,这是操作系统级别的虚拟化机制。Docker 和 Solaris Zones 是一些流行的容器技术。

要使用此模式,您需要将服务打包为文件系统映像,其中包含执行服务所需的应用程序和库,通常称为容器映像。一旦服务被打包为容器镜像,您就需要启动一个或多个容器,并且可以在物理或虚拟主机上运行多个容器。为了管理多个容器,许多开发人员喜欢使用集群管理器,例如Kubernetes或 Marathon。

好处

与每个虚拟机的服务实例一样,此模式也可以单独工作。它允许您跟踪每个容器正在使用多少资源。相对于虚拟机的最大优势之一是容器是轻量级的并且构建速度非常快。由于没有操作系统启动机制,容器可以快速启动。

挑战

尽管基础设施正在迅速成熟,但每个容器的服务实例模式仍然落后于虚拟机基础设施,并且不如虚拟机安全,因为它们共享主机操作系统的内核。

与虚拟机一样,您负责管理容器映像的所有繁重工作。如果您没有 Amazon EC2 容器服务 (ECS) 等托管容器解决方案,您还必须管理容器基础设施,可能还需要管理虚拟机基础设施。

此外,由于大多数容器部署在按虚拟机定价的基础设施上,因此会导致额外的部署成本和虚拟机的过度配置,以满足意外的负载峰值。

4. 无服务器部署

无服务器部署技术是微服务部署的另一种策略,它支持 Java、Node.js 和 Python 服务。AWS Lambda 是世界各地开发人员使用的一项流行技术。在此模式中,您需要将服务打包为 ZIP 文件并将其上传到 Lambda 函数,这是一个无状态服务。

相关文章:

微服务部署的正确策略

微服务部署挑战 单体应用程序的部署意味着您运行单个(通常是大型应用程序)的多个相同副本。这主要是通过配置 N 个服务器(无论是物理服务器还是虚拟服务器)并在每台服务器上运行应用程序的 M 个实例来完成。虽然这看起来非常简单…...

C#中的数组探究与学习

目录 C#中的数组一般分为:一.数组定义:为什么要使用数组?什么是数组?C#一维数组for和foreach的区别C#多维数组C#锯齿数组初始化的意义:适用场景:C#中的数组一般分为: ​①.一维数组。 ②.多维数组,也叫矩形数组。 ③.锯齿数组,也叫交错数组。 一.数组定义: 数组…...

计算机网络八股

1、请你说说TCP和UDP的区别 TCP提供面向连接的可靠传输,UDP提供面向无连接的不可靠传输。UDP在很多实时性要求高的场景有很好的表现,而TCP在要求数据准确、对速度没有硬件要求的场景有很好的表现。TCP和UDP都是传输层协议,都是为应用层程序服…...

Waves 14混音特效插件合集mac/win

Waves14是一款音频处理软件,主要用于音频编辑、混音和母带处理。该软件提供了各种插件,包括EQ、压缩、混响、延迟、失真等,以及一些专业的音频处理工具,如L2限幅器、Linear Phase EQ和多频道扬声器管理。 Mac软件下载:…...

Python python-docx 使用教程

openpyxl是Python下的Word库,它能够很容易的对Word文档进行读取 安装方法:pip install python-docx国内镜像安装:pip install -i https://mirrors.aliyun.com/pypi/simple/ python-docx(推荐,安装更快)中文…...

Mac上protobuf环境构建-java

参考文献 getting-started 官网pb java介绍 maven protobuf插件 简单入门1 简单入门2 1. protoc编译器下载安装 https://github.com/protocolbuffers/protobuf/releases?page10 放入.zshrc中配置环境变量  ~/IdeaProjects/test2/ protoc --version libprotoc 3.12.1  …...

CocosCreator3.8研究笔记(二十二)CocosCreator 动画系统-动画剪辑和动画组件介绍

国庆假期,闲着没事,在家研究技术~ 大家都知道在Cocos Creator3.x 的版本的动画编辑器中,可以实现不用写一行代码就能实现各种动态效果。 Cocos Creator动画编辑器中主要实现关键帧动画,不仅支持位移、旋转、缩放、帧动画&#xff…...

信看课堂-厘米GNSS定位

我们常常说GPS 定位,不过定位远不止GPS定位,通过本节课程,我们将会了解到,原来GPS只是定位的一种: GNSS概述 不同的GNSS系统使用不同的频段来传输导航信号。以下是一些主要的GNSS系统及其相应的频段,用表…...

2023CCPC网络赛(A E)

2023CCPC网络赛(A E) The 2nd Universal Cup. Stage 3: Binjiang - Dashboard - Contest - Universal Cup Judging System A. Almost Prefix Concatenation 思路:首先考虑如何求出每个位置允许失配一次的LCP长度 , 可以二分哈希求LCP , 即…...

使用 python 检测泛洪攻击的案例

使用 python 检测泛洪攻击的案例 本案例只使用python标准库通过执行命令来监控异常请求, 并封锁IP, 不涉及其他第三方库工具. import os import time from collections import Counter# 1、update 命令, 采集CPU的平均负载 def get_cpu_load():"""uptime 命令…...

SCROLLINFO scrollInfo; 2023/10/5 下午3:38:53

2023/10/5 下午3:38:53 SCROLLINFO scrollInfo;scrollInfo.cbSize = sizeof(SCROLLINFO);scrollInfo.fMask = SIF_ALL;//scrollInfo.nMin = 0; // 最小位置//scrollInfo.nMax = nRowCountToShow; // 最大位置//scrollInfo.nPage = nRowCountToShow; // 页面大小//scrollInf…...

Python--控制台获取输入与正则表达式

前言一、控制台获取输入1.1 字符串输入1.2 整数输入1.3 浮点数输入1.4 布尔值输入1.5 列表输入1.6 汇总 二、正则表达式2.1 匹配数字2.2 模式检查2.3 替换字符2.4 切分字符串2.5 搜索并提取匹配的部分2.6 使用捕获组提取匹配的部分2.7 非贪婪匹配2.8 忽略大小写匹配2.9 使用预定…...

网络基础知识面试题1

VC++常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycly/article/details/124272585C++软件异常排查从入门到精通系列教程(专栏文章列表,欢迎订阅,持续更新...)...

JavaScript系列从入门到精通系列第十五篇:JavaScript中函数的实参介绍返回值介绍以及函数的立即执行

文章目录 一:函数的参数 1:形参如何定义 2:形参的使用规则 二:函数的返回值 1:函数返回值如何定义 2:函数返回值种类 三:实参的任意性 1:方法可以作为实参 2:将匿…...

js中的原型链

编写思路: 简单介绍构造函数介绍原型对象原型对象、实例的关系,从而引出原型链的基本概念 原型链基本思想是利用原型让一个引用类型继承另一个引用类型的属性和方法。 1. 什么是构造函数 构造函数本身跟普通函数一样,也不存在定义构造函数…...

一文搞懂APT攻击

APT攻击 1. 基本概念2. APT的攻击阶段3. APT的典型案例参考 1. 基本概念 高级持续性威胁(APT,Advanced Persistent Threat),又叫高级长期威胁,是一种复杂的、持续的网络攻击,包含高级、长期、威胁三个要素…...

在pandas中通过一列数据映射出另一列的几种思路和方法

如果一句话中出现某个品牌的关键词,那么就将该品牌进行提取,开始我的做法是写了很多elif,如下: def brand_describe(x):if TRUM in x.upper():return "通快"elif BYSTRONIC in x.upper():return "百超"elif …...

数据分析视角中的商业分析学习笔记

数据分析一大堆,结果却是大家早就知道的结论?是工具和方法出问题了吗?真正原因可能是你的思维有误区。 为什么分析的这么辛苦,得出的结论大家早知道,谁谁都不满意?核心原因有3个: 分析之前&am…...

剑指offer——JZ26 树的子结构 解题思路与具体代码【C++】

一、题目描述与要求 树的子结构_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2}&…...

NEFU数字图像处理(1)绪论

一、简介 1.1什么是数字图像 图像是三维场景在二维平面上的影像。根据其存储方式和表现形式,可以将图像分为模拟图像和数字图像两大类 图像处理方法:光学方法、电子学方法 模拟图像:连续的图像数字图像:通过对时间上和数值上连续…...

数值分析学习笔记——绪论【华科B站教程版本】

绪论 数值分析概念 用计算机求解数学问题的数值方法和理论 三大科学研究方法 实验理论分析科学计算(用计算机去辅助研究):数值方法计算机 解析解和近似解 解析解:使用数学方法求出或推导出的结果,往往可以求解出…...

节日灯饰灯串灯出口欧洲CE认证办理

灯串(灯带),这个产品的形状就象一根带子一样,再加上产品的主要原件就是LED,因此叫做灯串或者灯带。2022年,我国灯具及相关配件产品出口总额超过460亿美元。其中北美是最大的出口市场。其次是欧洲市场&#…...

一线大厂Redis高并发缓存架构实战与性能优化

文章目录 一、redis主从架构锁失效问题分析二、从CAP角度剖析redis与zookeeper分布式锁区别三、redlock分布式锁原理与存在的问题分析四、大促场景如何将分布式锁性能提升100倍五、高并发redis架构代码实战 一、redis主从架构锁失效问题分析 我们都知道,一般的互联…...

PHP 行事准则:allow_url_fopen 与 allow_url_include

文章目录 参考环境allow_url_fopenallow_url_fopen 配置项操作远程文件file 协议 allow_url_includeallow_url_include 配置项 allow_url_include 与 allow_url_fopen区别联系默认配置配置项关闭所导致异常运行时配置ini_set()限制 参考 项目描述搜索引擎Bing、GoogleAI 大模型…...

Replicate + ngrok云端大模型API实现教程

ChatGPT 的诞生预示着人工智能和机器学习领域的新时代。 日新月异,Hugging Face 不断推出突破性的语言模型,重新定义人机交互的界限。欢迎来到未来! 当然,有很多选项可以对它们进行推断。在本文中,我将告诉大家如何使…...

蓝桥等考Python组别十四级005

蓝桥等考Python组别十四级 第一部分:选择题 1、Python L14 (15分) 运行下面程序,输出的结果是( )。 d = {1 : one, 2 : two, 3 : three, 4 : four} print(d[2]) onetwothreefour正确答案:B...

Linux 本地 Docker Registry本地镜像仓库远程连接

Linux 本地 Docker Registry本地镜像仓库远程连接 Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)镜像,不受本地局域网限制! 1. 部署Docker Registry 使用官网安装方式,docker命令一键启动,该命令启动一个regis…...

二十九、高级IO与多路转接之epollreactor(收官!)

文章目录 一、Poll(一)定义(二)实现原理(三)优点(四)缺点 二、I/O多路转接之epoll(一)从网卡接收数据说起(二)如何知道接收了数据&…...

vite dev开发模式下支持外部模块引用

web工程中经常需要使用外部的cdn资源&#xff0c;比如lodash、three.js等&#xff1a; <script type"importmap">{"imports": {"lodash": "https://unpkg.com/lodash-es4.17.21/lodash.js"}} </script> vite build通过r…...

Chrome出现STATUS_STACK_BUFFER_OVERRUN解决方法之一

Chrome出现STATUS_STACK_BUFFER_OVERRUN错误代码&#xff0c;setting都无法打开 解决方法1&#xff1a;兼容性设置为win7 解决方法2&#xff1a; 1&#xff0c;开始菜单搜索Exploit Protection 2&#xff0c;添加程序进行自定义&#xff0c;点号&#xff0c;按程序名称添加 …...

网站建设竞价托管服务/在线代理浏览国外网站

大家都知道TreeTagger是一个用于词性标注和词型还原的工具&#xff0c;它的返回结果由三部分组成&#xff1a;目标词汇&#xff0c;词性&#xff0c;原形。那该工具是怎样判断目标词汇的词性的呢&#xff1f;又是怎样得到目标词汇的原形的呢&#xff1f;本文就是从这两个问题入…...

dede酒业企业网站模板/网站怎么优化自己免费

一、最常用的快捷键CtrlS ---- 保存CtrlW ---- 关闭程序CtrlN ---- 新建CtrlZ ---- 撤销CtrlF ---- 查找CtrlP ---- 打印文档CtrlX ---- 剪切CtrlC ---- 复制CtrlV ---- 粘贴CtrlA ---- 全选AltF4 ---- 关闭当前程序F2 ---- 重命名WindowsD ---- 显示桌面或恢复桌面WindowsR --…...

如何做网站首页的psd图/网站查询域名

第十一章 三角形PPT课件教案下载_初中数学人教版八年级上册师梦圆​www.shimengyuan.com11.1 与三角形有关的线段PPT课件教案下载_初中数学人教版八年级上册师梦圆​www.shimengyuan.com11.1.1三角形的边PPT课件教案下载_初中数学人教版八年级上册师梦圆​www.shimengyuan.com章…...

web个人博客网站/软件外包公司好不好

面试刷题 刷题我从常见Android基础知识面试题&#xff0c;刷到了Java面试题&#xff0c;继而攻坚Android高级面试题&#xff0c;以及突破学习Flutter相关热点技术面试题&#xff08;不是很难&#xff09;&#xff0c;最后总攻今年大厂面试真题总结。 Android基础知识 一、 A…...

福州市做公司网站哪家好/抖音seo点击软件排名

来源&#xff1a;华为IT产品解决方案导读科技的进步在很多的时候总会超出我们的想象&#xff0c;试想如果未来我们一个人拥有的电脑设备超过现在全球现在计算能力的总和&#xff0c;一个人产生的数据量超过现在全球数据量的总和&#xff0c;甚至你的宠物小狗产生的信息量都超过…...

wordpress物流模板下载/荥阳网络推广公司

面向服务架构soa以其独特的优势越来越受到企业的重视&#xff0c;它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础&#xff0c;可以直接被应用调用&#xff0c;从而有效控制系统中与软件代理交互的人为依赖性。Soa的开发方法一…...