Web架构演变历程~

1、背景

对于服务架构,这个名词大家应该都很熟悉了吧,一个好的架构并不是一个最合适的架构,在对于选择那种架构,对于一个项目后续发展致关重要,接下来我们一起走进web服务架构的演变历程看看吧!

2、服务架构介绍

2.1、 单体架构

概念:只需要一个应用,将所有的功能代码打包成一个服务,部署到服务器

在这里插入图片描述
优点:
• 架构简单,项目开发和维护成本低。
• 所有项目模块部署到一起,对于小型项目来说,维护方便。
缺点:
• 所有模块耦合在一起,虽然对于小型项目来说,维护方便。但是,对于大型项目来说,却是不易开发和维护的。
• 项目的各模块之前过于耦合,如果一旦有一个模块出现问题,则整个项目将不可用。
• 无法针对某个具体模块来提升性能。
• 无法对项目进行水平扩展。

2.2、 垂直架构

概念:将单体应用部署多份,分别放在不同的服务器上
在这里插入图片描述
优点:
• 系统进行了拆分,可根据不同系统的访问情况,有针对性的进行优化。
• 能够实现应用的水平扩展。
• 各系统能够分担整体访问的流量,解决了并发问题。
• 一个系统发生了故障,不应用其他系统的运行情况,提高了整体的容错率
缺点:
• 拆分后的各系统之间相对比较独立,无法进行互相调用。
• 各系统难免存在重叠的业务,会存在重复开发的业务,后期维护比较困难。

2.3、 分布式架构

概念:将重复的代码抽象出来,形成统一的服务供其他系统或者业务模块来进行调用

在这里插入图片描述

优点:
• 将重复的业务代码抽象出来,形成公共的访问服务,提高了代码的复用性。
• 可以有针对性的对系统和服务进行性能优化,以提升整体的访问性能。
缺点:
• 系统之间的耦合度变高,调用关系变得复杂,难以维护。

2.4、 SOA架构

概念:增加一个统一的调度中心来对集群进行实时管理。

在这里插入图片描述
优点:
• 使用注册中心解决了各个服务之间的服务依赖和调用关系的自动注册与发现。
缺点:
• 各服务之间存在依赖关系,如果某个服务出现故障可能会造成服务的雪崩。
• 服务之间的依赖与调用关系复杂,测试部署的困难比较大。

2.5、 微服务架构

概念:将一个大的项目拆分为一个个小的可以独立部署的微服务,每个微服务都有自己的数据库。
在这里插入图片描述
优点:
• 服务彻底拆分,各服务独立打包、独立部署和独立升级。
• 每个微服务负责的业务比较清晰,利于后期扩展和维护。
• 微服务之间可以采用REST和RPC协议进行通信。

缺点:
• 开发的成本比较高。
• 涉及到各服务的容错性问题。
• 涉及到数据的一致性问题。
• 涉及到分布式事务问题

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

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

相关文章

基于STM32F407VGT6芯片----跑马灯实验

一、在STM32F407VGT6芯片中配置GPIO环境 对于一个跑马灯实验,首先,要了解的就是,芯片是如何构造出来的,设计GPIO引脚:根据原理图, PC4,PC5,PC6,PC7 为 LED 输出控制管脚,PE0 为蜂鸣…

Spring Boot视频网站:安全与可扩展性设计

4 系统设计 4.1系统概要设计 视频网站系统并没有使用C/S结构,而是基于网络浏览器的方式去访问服务器,进而获取需要的数据信息,这种依靠浏览器进行数据访问的模式就是现在用得比较广泛的适用于广域网并且没有网速限制要求的B/S结构&#xff0c…

SpringDataRedis快速入门

SpringDataRedis 什么是SpringDataRedis SpringData是Spring中数据操作的模块,包含对各种数据库的集成,其中对Redis的集成模块就叫做SpringDataRedis SpringDataRedis中提供了RedsiTemplate工具类,其中封装了各种对Redis的操作。并且将不同数据类型的操作API封装到了不同的类…

Atlas800昇腾服务器(型号:3000)—YOLO全系列NPU推理【检测】(五)

服务器配置如下: CPU/NPU:鲲鹏 CPU(ARM64)A300I pro推理卡 系统:Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本: Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

YOLOv11模型改进-注意力机制-引入自适应稀疏自注意力ASSA

随着目标检测领域的快速发展,YOLO系列模型凭借其端到端、高效的检测性能逐渐成为工业界和学术界的标杆。然而,如何进一步优化YOLOv11的特征提取能力,减少冗余信息并提升模型对复杂场景的适应性,仍是一个值得深入探讨的问题。为此&…

Atlas800昇腾服务器(型号:3000)—驱动与固件安装(一)

服务器配置如下: CPU/NPU:鲲鹏 CPU(ARM64)A300I pro推理卡 系统:Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本: Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

scrapy 爬虫学习之【中医药材】爬虫

本项目纯学习使用。 1 scrapy 代码 爬取逻辑非常简单,根据url来处理翻页,然后获取到详情页面的链接,再去爬取详情页面的内容即可,最终数据落地到excel中。 经测试,总计获取 11299条中医药材数据。 import pandas as…

特斯拉Robotaxi发布会2024:自动驾驶未来的开端

引言 2024年10月,特斯拉在洛杉矶举行了一场引发全球科技界高度关注的发布会,主题为“We Robot”。这场发布会展示了特斯拉的最新自动驾驶技术,包括无人驾驶出租车Cybercab和无人驾驶厢式货车Robovan,并且还展示了人形机器人Optim…

Java项目-基于springboot框架的社区疫情防控平台系统项目实战(附源码+文档)

作者:计算机学长阿伟 开发技术:SpringBoot、SSM、Vue、MySQL、ElementUI等,“文末源码”。 开发运行环境 开发语言:Java数据库:MySQL技术:SpringBoot、Vue、Mybaits Plus、ELementUI工具:IDEA/…

精选的四款强大视频压缩工具的整理:

大家好!今天我来跟大家分享一下我使用过的几款视频压缩软件的体验感受,以及它们各自的好用之处;在这个信息爆炸的时代,视频文件越来越大,如何快速有效地压缩视频,同时还能保持较好的画质,是很多…

大模型~合集14

我自己的原文哦~ https://blog.51cto.com/whaosoft/12286799 # Attention as an RNN Bengio等人新作:注意力可被视为RNN,新模型媲美Transformer,但超级省内 , 既能像 Transformer 一样并行训练,推理时内存需求又不随 token 数线性…

基于DNA算法的遥感图像加解密matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 通过DNA算法对遥感图像进行加密和解密,分析加解密处理后图像的直方图,相关性,熵,解密后图像质量等。 2.测试软件版…

MongoDB安装配置及配置和启动服务

MongoDB 安装配置 附:MongoDB官网下载地址: https://www.mongodb.com/download-center/community 注: 官网可以下载最新版的MongoDB安装包,有MSI安装版和ZIP安装版。我们课堂上使用4.4.4的ZIP安装版。安装版参考博客&#xff1…

jmeter中对于有中文内容的csv文件怎么保存

jmeter的功能很强大,但是细节处没把握好就得不到预期的结果。今天来讲讲有中文内容的csv文件的参数化使用中需要注意的事项。 对于有中文内容,涉及到编码格式,为了让jmeter能正确地读取csv文件中的中文,需要把文件转码为UTF-8BOM…

【服务器部署】Docker部署小程序

一、下载Docker 安装之前,一定查看是否安装docker,如果有,卸载老版本 我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上&#xff0c…

(JAVA)贪心算法、加权有向图与求得最短路径的基本论述与实现

1. 贪心算法 1.1 贪心算法的概述: 贪心算法是一种对某些求最优解问题的更简单、更迅速的设计技术。 贪心算法的特点是一步一步地进行,常以当前情况为基础根据某个优化测度作最优选择,而不考虑各种可能的整体情况,省去了为找最优…

LeetCode-3192 使二进制数组全部等于1的最少操作次数Ⅱ

今天的每日一题就是昨天的延伸,预判成功。 LeetCode-3191 使二进制数组全部等于1的最少操作次数-CSDN博客文章浏览阅读115次。如果数组第一个元素就是0,那么第一个元素是肯定要翻转的,而我们只有从索引0的位置开始翻转才可以翻转到第一个元素…

生成模型初认识

生成模型初认识 参考学习资料:李宏毅-机器学习 以下为课程过程中的简易笔记 生成模型 为什么要用生成模型?——创造力:同一个输入,产生不同的输出(distribution),有一定概率发生某种随机事件…

【天池比赛】【零基础入门金融风控 Task2赛题理解】【2.3.6】

【天池比赛】【零基础入门金融风控 Task2赛题理解】【2.3.1-2.3.5】 2.3.6 变量分布可视化 2.3.6.1 单一变量分布可视化 对于 pandas.core.series.Series 类型的变量: index:含义:它表示 Series 对象的索引,也就是每个数据点对…

MySQL-15.DQL-排序查询

一.DQL-排序查询 -- 排序查询 -- 1.根据入职时间,对员工进行升序排序 select * from tb_emp order by entrydate asc ;-- 2.根据入职时间,对员工进行降序排序 select * from tb_emp order by entrydate desc ;-- 3.根据 入职时间 对公司员工进行 升序排序…