微服务简介

1、什么是微服务

        微服务(或称微服务架构)是一种云原生架构方法,在单个应用中包含众多松散耦合且可单独部署的小型组件或服务。 这些服务通常拥有自己的技术栈,包括数据库和数据管理模型;通过一个REST API、事件流和消息代理组合彼此通信;以及按照业务能力进行组织,具有通常称为有界上下文的服务分隔线。

2、为什么要使用微服务

        为什么要使用微服务,这个就要结合服务的进化历史来说一说。

2.1、单实例单数据库的单体架构

        早期的项目,所有数据都保存在一个数据库中,所有的服务都在集中在一套代码中,服务上安装好数据库和运行环境后,部署上对应的系统,即可以进行使用。

2.2、多实例单数据库的单体架构

        随着系统用户量增加,单实例单数据库的单体架构就会出现问题,比如访问延迟、响应过慢等问题,所以,此时就会来增加服务器,使用负载均衡来提高服务性能,缓解单节点服务的压力。

2.3、多实例多数据库的单体架构

        数据量再次扩大后,数据库的访问就会出现问题,此时,就会再增加数据库的实例,将新增、修改、删除等操作与查询操作分离,实现多个数据库访问,并实现数据库的主从复制。

2.4、SOA 架构

        当项目需要扩展新需求时,在原来的基础上进行增加和修改,就会影响到之前的业务,那么如何处理呢,就需要引入消息总线ESB总线,将原来的服务与新的服务分开,用消息总线来进行通信。两个部分分开处理,互相不影响。

2.5、微服务架构

        项目逐渐变得越来越庞大,开发人员也越来越多,团队达到了大几十人。这时,就会发现原来的服务拆分粒度太 “粗”,而且原先系统的所有流量都会经过 ESB 进行分发,造成系统的可用性下降,甚至在流量峰值出现部分节点宕机的情况,这是一大隐患。

        于是, 就需要进一步拆分团队,拆分服务,将原先的服务与其他服务又进行了拆分,拆出了 10 余个服务。为了治理这些服务,就需要引入微服务架构,用微服务网关注册中心代替原有的消息总线,并采用分布式部署。除此之外,一系列微服务治理框架与 Devops 自动化运维部署流程也随之引入,每一个微服务均通过容器化方式部署上线。

3、总结

  1. 单体架构:所有功能都集中在同一个项目内,统一测试,统一部署,牵一发而动全身,适合初创项目进行试错,不适合大型商业项目。
  2. 在此基础做的纵向升级、横向扩容、一主多从等仍然属于单体架构,因为其仍然是单一服务、单一项目。
  3. SOA 架构:进行了初步的服务拆分,但是服务拆分的粒度较粗,并且没有引入服务治理组件,流量集中于消息总线。
  4. 微服务架构:是 SOA 架构的升级,基本沿用了 SOA 的思想,但是服务拆分粒度更细,并且引入了服务治理组件,结合流行的容器化技术,实现 Devops 自动化部署与运维。
  5. Devops(Development和Operations的组合词) 是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。总是与微服务一起出现,因为 Devops 带来的是敏捷开发、更快交付,而微服务通常由各个小团队负责开发,迭代周期更快、更敏捷。
  6. CI/CD 是 Devops 的核心,CI/CD 是一种通过在应用开发阶段引入自动化来频繁向客户交付应用的方法,CI/CD 的核心概念是持续集成、持续交付和持续部署。它是作为一个面向开发和运营团队的解决方案,主要针对在集成新代码时所引发的问题(也称为:“集成地狱”)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/163721.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux上的通用拍照程序

最近因为工作需要,在ubuntu上开发了一个拍照程序。 为了找到合适的功能研究了好几种实现方式,在这里记录一下。 目录 太长不看版 探索过程 v4l2 QT opencv4.2 打开摄像头 为什么不直接打开第一个视频节点 获取所有分辨率 切换摄像头 太长不看…

七要素微气象仪气象数据监测助手

WX-WQX7 随着科技的发展,气象预测的准确性已成为人们日常生活的重要参考。而七要素微气象仪,作为新型的气象探测设备,以其精细化的数据测量和解析能力,正在改变我们的天气预测方式。 一、产品介绍 七要素微气象仪是一款集成了温…

某投资公司薪酬激励体系改革项目成功案例纪实

——优化薪酬结构,实现薪酬公平,提高员工工作积极性 【客户行业】金融行业 【问题类型】薪酬激励 【客户背景】 某投资管理公司位于一线城市,是经市人民ZF批准,在2000年左右设立的市直属综合性投资公司。主要承担ZF重大建设项目…

JAVA实现flappy bird游戏

图片素材 实现代码 import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import java.util.Date; import java.text.SimpleDateFormat; i…

飞翔的小鸟游戏

GameApp类 package App;import main.GameFrame;public class GameApp {public static void main(String[] args) {//游戏的入口new GameFrame();} } main Barrier 类 package main;import util.Constant; import util.GameUtil;import java.awt.*; import java.awt.image.Buf…

gitea仓库镜像同步至gitlab

1、参考文档:仓库镜像 | Gitea Documentation 2、错误一:账号密码错误问题 解决方法: 出现以上错误为第三步用户名(Oauth2应用名称)或者密码(Gitlab个人访问令牌)错误。 1)如下图1…

【UE4虛幻】UTexture2D纹理裁剪函数

参数说明: 源2D纹理图片:UTexture2D* SourceTexture 裁剪区域的左上角:const FVector2D TopLeft 裁剪区域的右下角:const FVector2D BottomRight 返回值是裁剪之后的纹理图片 UTexture2D* APointProjection::CropPicture(UTextur…

洗地机哪个牌子好用?洗地机选购攻略

传统的清洁方式都是扫把拖把的结合,既繁琐也劳累,每次清洁完后还得累的腰酸背痛的,像厨房这种地方甚至会不容易清洁干净,总感觉地板灰蒙蒙的。洗地机的诞生就很好的解决了这些问题,不用一遍遍的重复扫地拖地擦地&#…

1410. HTML 实体解析器 --力扣 --JAVA

题目 「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。 HTML 里这些特殊字符和它们对应的字符实体包括: 双引号:字符实体为 " ,对应的字符是 &qu…

JOSEF约瑟 过电流继电器 JL15-300/11 触点形式一开一闭 板前接线

系列型号 JL15-1.5/11电流继电器JL15-2.5/11电流继电器 JL15-5/11电流继电器JL15-10/11电流继电器 JL15-15/11电流继电器JL15-20/11电流继电器 JL15-30/11电流继电器JL15-40/11电流继电器 JL15-60/11电流继电器JL15-80/11电流继电器 JL15-100/11电流继电器JL15-150/11电流继电…

linux的系统

10.4 I2C 系统的重要结构体 参考资料: ⚫ Linux 驱动程序:(某版本的 Linux,比如 Linux-4.9.88)/drivers/i2c ⚫ I2CTools: https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools/ 284 / 577 10.4.1 重要结构体 使用一句…

母婴团队半年破亿秘诀揭秘,合规经营成就辉煌

这支母婴产品销售团队在短短半年内实现了过亿的销售额,这是一个令人瞩目的成就。他们既不依赖线下门店,也不是传统的电商平台,那么他们是如何做到这一点的呢? 这个团队从16年10月开始经营母婴产品,如今已经过去了6年时…

生成式AI:SEO的末日?

由于在搜索结果中引入生成式AI (GAI),以 SEO 为主导的内容的未来成为最近的热门话题,这是有充分理由的。 对于出版商和网站所有者(从现在开始我们将他们称为内容创建者)的影响可能是毁灭性的。 如下图所示,谷歌新的搜…

成为AI产品经理——模型构建过程(上)

目录 一、背景 1.对内 2.对外 二、模型构建过程 1.模型设计 2.特征工程 ① 数据清洗 ② 特征提取 数值型数据 标签/描述类数据特征 非结构化数据(处理文本特征) 网络关系型数据 ③ 特征选择 ④ 训练集/测试集 一、背景 虽然产品经理不…

Linux应用开发基础知识——I2C应用编程(十二)

前言: I2C(Inter-Integrated Circuit BUS)是集成电路总线,是目前应用最广泛的总线之一,最初由PHILIPS(现为NXP)设计。它使用多主从架构,主要用于连接低速周边设备。I2C总线在硬件物理…

WorkPlus即时通讯,打通上下游产业链,构建企业生态圈

如今,随着信息技术的迅速发展,智慧水务、智慧医疗、智慧城市、智慧教育、智慧政务等领域正蓬勃发展。在这个智慧时代,企业需要一个具备开放性和扩展性的平台级产品,以满足多样化的业务需求。WorkPlus作为一款全新的移动底座产品&a…

String 真的不可变吗?

为什么 String 类不可变 final修饰符: String类被声明为final,这意味着它不能被继承。因此,无法创建String的子类来修改其行为。私有字符数组(char[]): String类内部使用私有的字符数组来存储字符串的内容…

Excel文件比较不再繁琐,xlCompare助您快速找出差异

概要 在现代职场中,Excel 已成为工作中不可或缺的利器。 在日常操作中,我们会遇到需要对两个或多个 Excel 文件进行比较的情况,此时,一款高效的 Excel 文件比较工具就显得尤为重要。 本文将为您介绍一款功能强大、优势明显的 Exc…

创新建筑形式:气膜体育馆助力校园体育设施革新

体育场馆在校园中扮演着重要的角色,是学生们进行体育锻炼、比赛和各类体育活动的场所。传统的室内体育馆建设往往需要大量资金和漫长的建设周期,但随着气膜体育馆的崭露头角,校园体育设施的面貌正迎来一场革新。 快速搭建,灵活性极…

电机应用开发-直流有刷电机电流环控制实现

目录 直流有刷电机电流环控制实现 硬件设计 直流电机电流环控制-位置式PID实现 编程要点 配置ADC可读取电流值 配置基本定时器6产生定时中断读取当前电路中驱动电机的电流值并执行PID运算 配置定时器1输出PWM控制电机 ADC数据处理 编写位置式PID算法 直流电机电流环控…