首页 > 其他分享 >单体服务,微服务服务的演变 & 各自优缺点

单体服务,微服务服务的演变 & 各自优缺点

时间:2023-06-18 13:03:19浏览次数:33  
标签:web 服务 service -- redis 优缺点 单体 mysql

单体服务,微服务服务的演变&各自优缺点

---- 一.单体服务
web-->service-->infrastructure-->mysql
web-->service-->redis
web-->service-->rabbitMQ

优点:
随着服务的演变
1.1> 单体服务
● 优点:
1> 架构简单,清晰。服务之间调??便,快捷。
2> 服务部署简单。部署量少。运维量很低。

● 缺点:
1> 随着项目进展时间变长,整个项目的代码复杂度越来越高,很容易1个小改动,导致很大的系统问
题。
2> 由于代码量很大,编译和部署会越来越慢,甚致20~30分钟都很正常。
3> 由于有的功能属于大量运算的CPU密集型模块,有的是大量读写磁盘的IO密集型模块。但是由于融
合在了1个项目中,无法针对单个功能模块进行扩展。那么只能CPU和内存和磁盘都要提升,资源投
入很大。
4> 如果我们想要针对已有项目改变技术选型,那么就需要针对整个项目进行修改,工作量将会巨大。

----- 二.微服务
● 微服务的核心就是把传统的单体服务,根据业务拆分为1个个的服务,实现解耦;每个服务都可以
提供特定业务的功能,每个服务都能够单独部署,也可以拥有自己的数据库。这样的1个个的小服
务就是微服务。

web-->user-service-->user-domain-->infrastructure-->mysql-user(共享redis,rabbitmq)
web-->prod-service-->prod-domain-->infrastructure-->mysql-prod(共享redis,rabbitmq)
web-->order-service-->order-domain-->infrastructure-->mysql-order(共享redis,rabbitmq)

● 优点:
1> 每个服务足够小,足够内聚,专注于1个业务功能点提供服务。代码更容易理解。
2> 有代码修改或部署上线,只会影响对应的微服务,不会是整个服务。
3> 可针对服务是计算型还是IO型进行针对性的硬件升级。
4> 可以针对某些高吞吐服务进行硬件升级或者服务横向扩容,而不是对所有服务都升级。节约投入成本。
● 缺点:
1> 极大的增加了运维工作量,以前几个war包,现在可能需要部署几百个。
2> 微服务之间的互相调用,会增加通讯成本。
3> 分布式事务问题会引出数据一致性的问题。
4> 服务增多,如果管控成百上千的服务。如何准确并快速定位问题。



标签:web,服务,service,--,redis,优缺点,单体,mysql
From: https://blog.51cto.com/u_15310950/6508229

相关文章

  • 微服务配置中心选型比较——Nacos、Apollo
    创建配置中⼼,将配置从各个应⽤中剥离出来,对配置进⾏统⼀管理,应⽤⾃身不需要⾃⼰去管理配置.1.概述随着程序功能的日益复杂,程序的配置日益增多:各种功能的开关、参数的配置、服务器的地址……对程序配置的期望值也越来越高:配置修改后实时生效,分环境、分集群管理配置,代码安全、审核机......
  • 使用以下命令将 Windows Server 2022 上的 Bluetooth 服务全部设置为自动启动
    使用以下命令将WindowsServer2022上的Bluetooth服务全部设置为自动启动:打开记事本,将以下命令复制粘贴到记事本中:scconfigbthservstart=autoscconfigBluetoothAudioGatewayServicestart=autoscconfigBluetoothAVRCPServicestart=autoscconfigBluetoothUse......
  • Spring Boot单体应用引入sleuth链路追踪
    文章目录前言一、问题模拟二、引入sleuth链路跟踪1、引入sleuth的maven依赖2、添加属性配置3、logback配置4、日志信息5、通过@NewSpan注解声明新的Span三、引入Sleuth链路跟踪的好处四、Sleuth概念说明五、Logback的MDC特性前言最近排查生产环境的异常时发现一个问题,虽然找到了......
  • centos添加自定义Systemd服务
    #########################https://zhuanlan.zhihu.com/p/415469149          systemctlenable**nable命令相当于在/etc/systemd/system/目录里添加了一个符号链接,指向/usr/lib/systemd/system/里面的**.service开机时,Systemd会执行/etc/systemd/system......
  • Windows10远程访问Ubuntu服务器上的Jupyter Notebook解决办法
    1、nginx反向代理 2、概要:可能有的同学在使用Python的时候喜欢使用.py文件,而有的同学喜欢使用JupyterNotebook做开发,但是苦于不会使用远程服务器的JupyterNotebook而放弃,而这篇文章将教会你怎样远程访问JupyterNotebook。官方地址:官方地址远访配置:创建JupyterNot......
  • 申威3231_SPECJVM2008的测试结果与信创服务器对比验证
    申威3231_SPECJVM2008的测试结果与信创服务器对比验证背景周六找同事将在公司里的机器进行了开机.然后验证了config.guess和config.sub的确是可以通过复制/usr下面的文件进行解决的但是perl的很多model无法使用.所以没办法,准备测试一把SPECJVM2008其实周五晚上看......
  • 公共DNS服务器 国内外公共DNS服务器
    公众DNS服务器 国内外DNS服务器  国外公共DNS服务器地址:GooglePublicDNS(8.8.8.8,8.8.4.4) OpenDNS(208.67.222.222,208.67.220.220) OpenDNSFamily(208.67.222.123,208.67.220.123) V2EXDNS(199.91.73.222,178.79.131.110) DynDNS(216.1......
  • PHP开发:版本管理、服务器配置和最佳实践
    一、PHP版本和扩展管理:在PHP开发中,使用最新版本的PHP和相关扩展非常重要。版本更新通常包含新功能、修复漏洞和提高性能。我们将介绍如何使用包管理器(如Composer)来管理PHP的版本和扩展,并演示如何安装和更新它们。示例代码:#使用Composer安装PHP依赖包composerrequirevendor/pac......
  • 如何使用 CloudFlare D1 来搭建评论服务?
    在本教程中,我们将学习如何使用D1来搭建一个无服务器评论服务。为此,我们将构建一个新的D1数据库,并构建一个允许创建和检索评论的JSONAPI。这可能是国内第一篇详细介绍D1和具体写法的博文了(bushi)目录设置你的项目创建数据库与D1互动执行SQL插入数据部署使用前端进行测......
  • 【技术学习】网络学习--简单tcp服务器
    这是一个用AI生成的简单的tcp服务器代码,我稍微改动了一下命名啥的。可以看到代码非常简短,不过却没什么问题,人工智能还是很强的。#include<iostream>#include<sys/socket.h>#include<netinet/in.h>#include<cstring>#include<unistd.h>#defineMAXLNE4096intmai......