首页 > 其他分享 >微服务有什么优点缺点

微服务有什么优点缺点

时间:2024-01-15 19:57:48浏览次数:33  
标签:架构 单体 优点 缺点 模块 服务 分布式 来讲

一、微服务的优点:

1、易于开发和维护

由于微服务单个模块就相当于一个项目,开发这个模块我们就只需关心这个模块的逻辑即可,代码量和逻辑复杂度都会降低,从而易于开发和维护。

2、启动较快

这是相对单个微服务来讲的,相比于启动单体架构的整个项目,启动某个模块的服务速度明显是要快很多的。

3、局部修改容易部署

在开发中发现了一个问题,如果是单体架构的话,我们就需要重新发布并启动整个项目,非常耗时间,但是微服务则不同,哪个模块出现了bug我们只需要解决那个模块的bug就可以了,解决完bug之后,我们只需要重启这个模块的服务即可,部署相对简单,不必重启整个项目从而大大节约时间。

4、技术栈不受限

比如订单微服务和电影微服务原来都是用java写的,现在我们想把电影微服务改成nodeJs技术,这是完全可以的,而且由于所关注的只是电影的逻辑而已,因此技术更换的成本也就会少很多。

5、按需伸缩

我们上面说了单体架构在想扩展某个模块的性能时不得不考虑到其它模块的性能会不会受影响,对于我们微服务来讲,完全不是问题,电影模块通过什么方式来提升性能不必考虑其它模块的情况。

二、微服务的缺点

1、运维要求较高

对于单体架构来讲,我们只需要维护好这一个项目就可以了,但是对于微服务架构来讲,由于项目是由多个微服务构成的,每个模块出现问题都会造成整个项目运行出现异常,想要知道是哪个模块造成的问题往往是不容易的,因为我们无法一步一步通过debug的方式来跟踪,这就对运维人员提出了很高的要求。

2、分布式的复杂性

对于单体架构来讲,我们可以不使用分布式,但是对于微服务架构来说,分布式几乎是必会用的技术,由于分布式本身的复杂性,导致微服务架构也变得复杂起来。

3、接口调整成本高

比如,用户微服务是要被订单微服务和电影微服务所调用的,一旦用户微服务的接口发生大的变动,那么所有依赖它的微服务都要做相应的调整,由于微服务可能非常多,那么调整接口所造成的成本将会明显提高。

4、重复劳动

对于单体架构来讲,如果某段业务被多个模块所共同使用,我们便可以抽象成一个工具类,被所有模块直接调用,但是微服务却无法这样做,因为这个微服务的工具类是不能被其它微服务所直接调用的,从而我们便不得不在每个微服务上都建这么一个工具类,从而导致代码的重复。

三、微服务的特性

  1. 每个微服务可独立运行在自己的进程里;
  2. 一系列独立运行的微服务共同构建起了整个系统;
  3. 每个服务为独立的业务开发,一个微服务一般完成某个特定的功能,比如:订单管理,用户管理等;
  4. 微服务之间通过一些轻量级的通信机制进行通信,例如通过REST API或者RPC的方式进行调用。

标签:架构,单体,优点,缺点,模块,服务,分布式,来讲
From: https://www.cnblogs.com/luori719/p/17966177

相关文章

  • 分布式系统和微服务的关系
     分布式系统和微服务的关系   分布式系统    分布式系统是由多台计算机组成的系统,这些计算机通过网络进行通信和协作,共同完成一个或多个共享目标。在分布式系统中,各个计算机节点可以分布在不同的地理位置,它们通过消息传递或共享存储等方式进行通信。分布......
  • 区域入侵检测/视频智能识别AI边缘计算智能分析网关V4如何通过ssh进行服务器远程运维
    智能分析网关V4是一款高性能、低功耗的AI边缘计算硬件设备,它采用了BM1684芯片,集成高性能8核ARMA53,主频高达2.3GHz,并且INT8峰值算力高达17.6Tops,FB32高精度算力达到2.2T,每个摄像头可同时配置3种算法,设备能同时对16路视频流进行处理和分析,能应用在工地、工厂、车间、社区、校园、消......
  • WindowsServer 2019安装域服务
    WindowsServer2019安装域服务导航目录WindowsServer2019安装域服务导航一、重命名主控服务器固定IP地址重命名域控服务器二、登录并创建服务三、检验安装域服务一、重命名主控服务器固定IP地址右击电脑右下角网络的标志,点击打开“网络和internet”设置,在屏幕中间的......
  • 在Linux中安装和配置Node.js与Express.js创建HTTP服务器
    在Linux环境中,安装和配置Node.js与Express.js来创建一个HTTP服务器需要一系列的步骤。下面是一个详细的指南,帮助你在Linux上设置这个环境。步骤1:安装Node.js首先,你需要确保你的Linux系统已经安装了Node.js。你可以通过以下命令来检查是否已经安装:bash复制代码node-v如果已经安装,它......
  • 使用HTTP/2在Linux上的Nginx服务器进行优化
    随着互联网的发展,HTTP/2协议逐渐成为主流。与传统的HTTP/1.1相比,HTTP/2提供了更高的传输效率和更好的安全性。在Linux上使用Nginx服务器进行优化,我们可以充分利用HTTP/2的优势,提高网站的性能和用户体验。安装Nginx并启用HTTP/2首先,确保你的Nginx服务器已经安装并正常运行。要启用H......
  • 微服务安全问题
    参考:https://cheatsheetseries.owasp.org/cheatsheets/Microservices_Security_Cheat_Sheet.htmlhttps://medium.com/microservices-learning/how-to-implement-security-for-microservices-89b140d3e555以下是medium.com的这篇文章内容: IntroductionOnecommonargumentt......
  • NetCore 使用 Consul注册服务
    第一步:配置Consul(appsettings.json)"Consul":{"ServiceName":"bpm",//当前服务名称"IP":"127.0.0.1",//当前服务IP"Weight":"1","Port":"5002"//当前服务端口}第......
  • C#实现一个最简单的HTTP服务器
    C#实现一个最简单的HTTP服务器 简介本文用C#实现了一个最简单的HTTP服务器类,你可以将它嵌入到自己的项目中,或者也可以阅读代码来学习关于HTTP协议的知识。背景高性能的WEB应用一般都架设在强大的WEB服务器上,例如IIS,Apache,和Tomcat。然而,HTML是非常灵活的UI......
  • Windows服务创建及安装
    Windows服务创建及安装 我们将研究如何创建一个作为Windows服务的应用程序。内容包含什么是Windows服务,如何创建、安装和调试它们。会用到System.ServiceProcess.ServiceBase命名空间的类。什么是Windows服务?Windows服务应用程序是一种需要长期运行的应用程序......
  • 网络地图服务(WMS)详解
    目录1.概述2.GetCapabilities3.GetMap4.GetFeatureInfo阅读本文之前可参考前文:《地图服务器GeoServer的安装与配置》与《GeoServer发布地图服务(WMS、WFS)》。1.概述经过前文的介绍,相信我们对WMS/WFS服务已经有了一个非常直观的认识,最起码我们知道了地图服务的数据从何而来,又是......