【SpringCloud】什么是微服务?

一、单体架构 

单体架构就是把所有业务模块编写在一个项目,最终打包成一个 war 包,进行部署

单体架构的优点:

部署简单:由于是完整的结构体,可以直接部署在一个服务器上即可

技术单一:项目不需要复杂的技术栈,往往一套熟悉的技术栈就可以完成开发

用人成本低:单个程序可以完成业务接口到数据库的整个流程

单体架构的缺点:

系统启动慢,一个进程包含了所有的业务逻辑,涉及到的启动模块过多,导致系统的启动,重启周期边长

系统错误隔离性差,可用性差,任何一个模块的错误可能导致整个系统的宕机

可伸缩性差,系统的扩容只能对整个应用扩容,不能做到对整个功能点进行扩容

线上问题修复时间长,任何一个线上问题修复需要对整个应用系统进行全面升级

二、微服务架构 

微服务是一种架构模式,将整个系统拆分成多个服务的架构,服务之间相互协调

每个服务都有独立的生命周期,可以单独的维护和部署,各个业务模块之间是松耦合的

若对系统进行升级扩展,只需要为额外的组件部署,不需要部署一个完整的系统即可完成更新迭代

微服务的优点:

开发简单:每个服务完成独立的功能

技术栈灵活:可以选择不同的语言完成不同的服务,发挥各种语言的最大优势

服务独立无依赖:每个服务都可以独立部署,一个服务出现问题不会导致整个系统瘫痪

独立按需扩展:以应对高并发大流量

可用性高:当其中一个点出现问题时,能够及时切换,不影响业务的正常运行

复杂应用解耦为小而众的服务:拆分可以基于一定的原则,将耗时的应用解耦

各服务精而专:也就是常说的专人干专事,映射到微服务中就是专服务干专事

服务间通信通过 API 完成:选择轻量的 API 通信 

微服务的缺点:

多服务运维难度:服务的增加意味着运维的难度,如何有效管理是一个挑战 

系统部署依赖:当业务复杂时,系统之间的耦合关系高度耦合,如何高效部署是一个挑战 

服务间通信成本:包括网络延迟、接口不可用性等,保证服务的高可用性是一个挑战

数据一致性: 各个服务间如何有效的共享数据,确保相应服务的数据一致性是一个挑战

系统继承测试:拆分后,需要测试的内容成倍的增加,如何高效降低测试成本是一个挑战 

重复工作:服务拆分之后,由于信息的不对称导致的重复性工作,如何有效抽象是一个挑战 

性能监控:原本只需要一个监控的部分,现在需要分开监控,如何快速定位问题是一个挑战 

沟通成本的成倍增加:服务拆分后,各个服务由专人来维护,如何高效沟通是一个挑战 

参考资料:《微服务架构实战》—— 张锋 

一  叶  知  秋,奥  妙  玄  心 

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

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

相关文章

单词搜索黄金矿工

79. 单词搜索 中等 1.7K 相关企业 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相…

联合众筹模式系统源码:创新体验 支持队伍模式+支持转移 附带完整的搭建教程

众筹模式的日益普及,一种全新的联合众筹模式系统源码正在崭露头角。这款源码以创新体验为核心,支持队伍模式和支持转移功能,同时附带完整的搭建教程,为广大开发者带来了一场前所未有的便捷。 以下是部分代码示例: 系统…

boardmix AI思维导图,一键自动生成思维导图!

在日常学习和工作中,我们常常需要记忆和整理大量的知识点和思维结构。 此时,思维导图的存在就大大方便了我们的工作。与传统的文本笔记不同,思维导图可以结合文字、图像、颜色等多种元素,帮助我们更好地整理和分析知识的关系&…

竞赛选题 题目: 基于深度学习的疲劳驾驶检测 深度学习

文章目录 0 前言1 课题背景2 实现目标3 当前市面上疲劳驾驶检测的方法4 相关数据集5 基于头部姿态的驾驶疲劳检测5.1 如何确定疲劳状态5.2 算法步骤5.3 打瞌睡判断 6 基于CNN与SVM的疲劳检测方法6.1 网络结构6.2 疲劳图像分类训练6.3 训练结果 7 最后 0 前言 🔥 优…

浅析基于智能音视频技术的城市重要场馆智能监控系统设计

了解旭帆科技的朋友都知道,旭帆科技一直都乐于和大家分享各类场景的视频解决方案,今天小编就基于智能音视频技术的城市重要场馆智能监控系统设计和大家探讨一下。 基于智能音视频技术的城市重要场馆智能监控系统设计,主要包含以下要素&#x…

前端 计算机基础篇 ( 二 )

文章目录 websockt及原理ipv4和ipv6的区别线程和进程的区别cdn原理缓存所涉及的http状态码缓存的时候设置 no-store和no-cache和max-age0这几个有什么区别token一般存放在哪儿怎么设置强缓存和协商缓存强缓存:1. 使用 Cache-Control 头字段: 协商缓存&am…

FIB表与快速转发表实验

实验名称:FIB表与快速转发表实验 网络拓扑图: 实验步骤: 1、配置接口的IP地址 R1: R2: 2、配置OSPF路由协议 在R1宣告网段 在R2宣告网段 3、查看邻居状态,一直处于2-way状态,要等待30秒&…

10和一万能分销商城源码系统 源码全开源可二开 一个后台轻松管理所有设备 并附带完整的搭建教程

电子商务和移动商务的兴起,传统的实体销售已经无法满足市场的需求。为了适应这种趋势,小编来给大家分享一款10和一万能分销商城源码系统。这是一个全新的、具有高度可定制性的电子商务平台,其背后的逻辑是简化商家操作流程,提高销…

Visual Studio 2019 C# System.BadImageFormatException 解决方法

文章目录 1.DLL文件缺失或不匹配原因解决方法 2.系统环境变量Path下内容过多原因解决方法 3.位数错误原因解决方法 分析几种可能因素 1.DLL文件缺失或不匹配 原因 检查对应Debug路径下的DLL文件是否有缺失 解决方法 将对应的DLL文件放到Debug文件夹里面,检查冗余…

痤疮分级实验笔记-ResNet

组织数据集 方式1:根据txt文件分类的数据集组织形式(放弃) 你可以使用Python来读取txt文件中的训练集图片信息,并将这些图片从原始文件夹复制到目标文件夹中。 当程序无法找到标签对应的图片或者目标文件夹中已经存在同名图片时…

Python web自动化测试 —— 文件上传

​文件上传三种方式: (一)查看元素标签,如果是input,则可以参照文本框输入的形式进行文件上传 方法:和用户输入是一样的,使用send_keys 步骤:1、找到定位元素,2&#…

“老人护工-预约上门” 技术支持网址

我们是一家为新加坡华人提供老人护工上门服务的软件。您可以选择满意的护工,然后提交联系人的信息,我们会在规定的时间安排护工人员上门,然后您线下支付所需的费用 如果您在使用过程中有什么问题,您可以随时联系我们。 邮箱地址&…