项目架构简介

news2025/1/12 4:01:01

目录

1 单体应用架构

 2 垂直应用架构

3 分布式架构

3.1 RPC

3.2 SOA

4 微服务架构


本文介绍后台应用的各种架构,以及各架构的优缺点对比

1 单体应用架构

        将所有的代码功能都写在一个项目中(例如:MVC结构,SSM框架),同时打包,同时部署

                优点:便于管理,减少开发、维护、运维成本

                缺点:一个小功能的修改就需要将整个项目重新打包部署、一个小bug的排查就需要对整个项目进行排查

 2 垂直应用架构

        根据业务把一个项目切分成互不相干的多个项目(注册登录系统,订单管理系统,积分系统...)

                优点:业务相互独立,一个业务故障,其它业务不受影响;  对访问量大的业务模块可以增加多个服务器支持

                缺点:系统之间相互独立,系统与系统之间无法调用;  多个系统之间存在重复开发的问题

3 分布式架构

        将一个系统拆分成多个独立的子系统,和"垂直架构"不同的是,分布式架构还可以将重复的业务代码抽取出来作为一个独立的子系统,并且各个子系统之间是可以相互调用

3.1 RPC

        RPC(Remote Procedure Call远程过程调用),多个子系统被部署在不同的服务器上,由于子系统之间不在同一个内存空间,因此各子系统不能直接相互调用,需要通过远程服务(例:dubbo,http等)调用

        缺点:各种分布式问题(分布式缓存(redis解决),分布式锁(redis或zookeeper解决),分布式事务(redis解决));  系统间耦合度提高,调用关系错综复杂

        优点:抽取公共代码,避免重复开发;  可以单独对访问量大的子系统增加服务器节点

3.2 SOA

        SOA(Service-Oriented Architecture面向服务架构),把一个个业务功能封装成标准化的服务,服务之间通过精确定义的接口进行通讯,SOA架构有3种实体:ServiceProvider(服务提供者)、serviceRequester(服务请求者)、ServiceRegister(服务注册中心),服务提供者和服务请求者是完全解耦的,并且都需要在服务注册中心注册,

        缺点:在服务调用过程中增加了额外的中间组件,降低了服务的响应时间和性能;  架构搭建复杂,适合中大型的项目

        优点:理论上SOA架构拥有无限的服务扩展性,任何新的服务都可以以注册的形式新增到整个系统中;  服务之间轻耦合

4 微服务架构

        微服务架构是对SOA架构的扩展,服务拆分更细致化

        缺点:架构复杂,开发成本高

        优点:独立打包、部署、升级;  微服务之间采用轻量级的http协议(Restful,dubbo,feign等)相互调用

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

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

相关文章

GPT内功心法:搜索思维到GPT思维的转换

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

2023国赛数学建模C题思路分析

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 全国大学生数学建模…

div 中元素居中的N种常用方法

本文主要记录几种常用的div盒子水平垂直都居中的方法。本文主要参考了该篇博文并实践加以记录说明以加深理解记忆 css之div盒子居中常用方法大全 本文例子使用的 html body结构下的div 盒子模型如下&#xff1a; <body><div class"container"><div c…

docker desktop搭建 nginx

【docker 桌面版】windows 使用 docker 搭建 nginx 拉取 nginx 镜像 docker pull nginx运行容器 docker run -d -p 80:8081 --name nginx nginx本地磁盘创建 nginx 目录 D:\DockerRep\nginx复制 docker 中的 nginx 配置文件 查看运行的容器 docker ps -a docker cp 9f0f82d66dd…

点亮你的第一颗Led灯

1、&#x1f4d5;前言 该系列文章用于记录个人学习stm32单片机的过程&#xff0c;全文搭配图文解说&#xff0c;零基础的萌新也能读懂&#xff0c;欢迎指导讨论~ 2、&#x1f4e6;准备材料 2.1、&#x1f4dd;硬件材料清单 面包板1块 PWLINK PowerWriter仿真器1个 杜…

2023/8/12总结

增加了管理员功能点&#xff1a;&#xff08;管理标签和分类&#xff09; 另外加了一个转换成pdf的功能 主要是通过wkhtmltopdf实现的&#xff0c;之前看过很多说用adobe的还有其他但是都没成功。 然后就是在学习websocket和协同过滤算法实现&#xff0c;还只是初步了解了这些。…

【C语言】自定义实现strlen函数的3种方法

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C语言中自定义实现strlen函数的3种方法&#xff0c;如果大家觉得我写的不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 在自定义实现strlen函数之前&#xff0c;我们简单的介绍一下strlen函…

2023 年第八场牛客多校题解

A Alive Fossils 题意&#xff1a;依次举办 n n n 场多校&#xff0c;每场多校有一些出题人。问哪些出题人每场都出题了。 解法&#xff1a;用 set 维护下一直在出题的人即可。 B Bloodline Counter 题意&#xff1a;求 n n n 个点的竞赛图中最大环大小恰好为 k k k 的方…

【国赛清单】2023全国大学生电赛综合测试【总结】

综合测评简介 &#xff08;1&#xff09;综合测评是全国大学生电子设计竞赛评审工作中非常重要的一个环节&#xff0c;是“一次竞赛二级评审”工作中全国专家组评审工作的一部分。 &#xff08;2&#xff09;测试对象为赛区推荐上报全国评奖的优秀参赛队全体队员&#xff0c;…

找不到资产文件project.assets.json

NuGet 在“obj”文件夹中写入名为 project.assets.json 的文件&#xff0c;.NET SDK 使用该文件来获取有关要传递到编译器的包的信息 。 如果在生成过程中找不到资产文件 project.assets.json&#xff0c;则会发生此错误。 1.执行命令的方式解决 点击工具&#xff0c;分别展开命…

实例 -- Loadrunner实现Android / IOS 手机APP压力测试

随着手机APP用户量的增大&#xff0c;大的手机APP一般都需要进行压力测试&#xff0c;这几天用了Loadrunner 12进行了手机APP的压力测试&#xff0c;整理了下&#xff0c;大家可以参考参考怎样给Andorid / IOS手机APP进行压力测试&#xff0c;以下是操作实例。 先前我的一个帖…

论文浅尝 | CI4MRC:基于因果推断去除机器阅读理解中的名字偏差

笔记整理&#xff1a;朱珈徵&#xff0c;天津大学硕士&#xff0c;研究方向&#xff1a;问答 链接&#xff1a;https://aclanthology.org/2023.findings-acl.812/ 动机 机器阅读理解&#xff08;Machine Reading Comprehension&#xff0c;MRC&#xff09;是根据给定的文章回答…

linux 命令- systemctl

systemctl 参数说明 1、使用语法 用法&#xff1a;systemctl [OPTIONS…] {COMMAND} … 2 、参数说明 参数参数说明start立刻启动后面接的unitstop立刻关闭后面接的unitrestart立刻关闭后启动后面接的unit&#xff0c;亦即执行stop再start的意思reload不关闭后面接的unit的…

从零开始实现一个玩具版浏览器渲染引擎

前言 浏览器渲染原理作为前端必须要了解的知识点之一&#xff0c;在面试中经常会被问到。在一些前端书籍或者培训课程里也会经常被提及&#xff0c;比如 MDN 文档中就有渲染原理的相关描述。 作为一名工作多年的前端&#xff0c;我对于渲染原理自然也是了解的&#xff0c;但是…

HCIP学习--BGP1

目录 BGP是什么 AS EGP协议 IGP协议 EGP和IGP的区别 IGP协议追求 EGP协议的追求 BGP协议 BGP的特性 可靠性 可控性强 AS-BY-AS 具有丰富的属性来取代IGP中度量进行选路 默认不被用于负载均衡 不需要周期更新 无类别路径矢量 BGP数据包 Open Keeplive Update…

MIMO-NOMA系统MATLAB仿真实现

非正交多址接入&#xff08;NOMA&#xff09;技术可以打破传统的正交多址一个基本资源块由单用户独占的限制&#xff0c;通过在时域和频域的基础上开辟新的功率域维度&#xff0c;在相同的时频资源上通过功率复用技术允许同一个时频资源块由多个用户共享&#xff0c;有效提升了…

树莓派使用 ENC28J60

前言 一些老的、Mini 的 ARM 开发板上没有预留网口&#xff0c;这样在调试升级内核或应用程序时很不方便。纵使有串口下载工具&#xff0c;但其速度也是慢地捉急。这种情况下&#xff0c;使用其它接口来扩展出一个网口无疑是一个比较好的方法。 ENC28J60 就是一个使用 SPI 接口…

软件测试基础篇——MySQL

MySQL 1、数据库技术概述 数据库database&#xff1a;存放和管理各种数据的仓库&#xff0c;操作的对象主要是【数据data】&#xff0c;科学的组织和存储数据&#xff0c;高效的获取和处理数据SQL&#xff1a;结构化查询语言&#xff0c;专为**关系型数据库而建立的操作语言&…

LabVIEW开发图像采集和基于颜色的隔离

LabVIEW开发图像采集和基于颜色的隔离 在当今的工业和工厂中&#xff0c;准确性和精度是决定特定行业生产力的两个重要关键点。为了优化生产力&#xff0c;各行各业正在从手动操作转向自动操作和控制。机器人技术在工业过程中的出现为人类提供了机械辅助。机器视觉在工业机器人…

LinuxC编程——线程的同步与互斥

目录 一、同步的概念二、同步机制2.1 信号量2.1.1基础概念2.1.2 函数接口2.1.3 例子 2.2 互斥锁2.2.1 几个概念2.2.2 函数接口2.2.3 练习 2.3 条件变量2.3.1 步骤2.3.2 函数2.3.3 练习 我们知道&#xff0c;一个进中的所有线程共享进程的资源&#xff0c;所以可以通过在进程中定…