项目架构的演进

基于VPC(Virtual Private Cloud)产品技术架构演进的项目经验分享 通过分阶段演进和持续优化,VPC架构可逐步从基础网络服务升级为云原生时代的核心基础设施,支撑企业数字化转型。 阅读详情

一 概述

随着软件行业的发展,软件架构的发展经过了从单体架构->垂直架构->SOA架构->微服务架构的演进。

二 单体架构

单体架构是Web应用程序发展早期的一种架构,这种架构的特点就是所有的功能模块都打成一个war包,并放在同一个web容器中,而且所有的功能模块使用同一个数据库。

              

单体架构的特点:

  1. 该架构下会将所有的功能集成在一个项目工程中。
  2. 所有的功能打成一个war包部署到服务器。
  3. 通过部署应用集群和数据库集群来提高系统的性能。

单体架构的优点:

  1. 项目架构简单,前期开发成本低,周期短,适合小型项目。
  2. 单体架构项目开发效率高,模块之间交互采用本地方法调用。
  3. 项目部署方便,运维成本小,直接打包成一个完整的包并拷贝到web容器的某个目录下即可。
  4. 容易测试,单体应用本地启动方便,从而测试功能方便。

单体架构的缺点:

  1. 全部功能集成在一个项目中,对于大型项目不易开发,扩展及维护。
  2. 版本迭代速度逐渐变慢,修改一个地方就要将整个应用全部编译,部署,启动,开发和测试周期长。
  3. 无法按需伸缩,通过集群的方式来实现水平扩展,无法针对某业务按需伸缩。

三 分布式架构

在Web应用程序的发展过程中,为了适应大型项目的开发需求,开发者需要将一个单体系统按业务垂直拆分为若干个系统,系统之间通过网络交互完成用户的业务处理,每个系统可分布式部署,所以就出现了分布式架构。

分布式架构的特点:

  1. 分布式架构按业务垂直拆分成一个一个的单体系统,被称为垂直架构。
  2. 分布式架构中,系统与系统之间存在数据冗余,耦合性较大,如上图三个项目都存在客户信息。
  3. 分布式架构中,系统之间的接口多为实现数据同步,如上图三个项目要求客户信息同步。

分布式架构的优点:

  1. 分布式架构将系统进行垂直拆分,每个子系统都变成小型系统,功能简单,前期开发成本低,周期短。
  2. 每个系统可按需伸缩,且可以按需采用不同的技术。

分布式架构的缺点:

  1. 分布式架构中存在数据冗余,功能冗余,耦合性高。
  2. 分布式架构垂直拆分的子系统可以按需伸缩,但是伸缩的粒度不够,对于一个子系统中的不同业务无法实现,比如订单管理和用户管理。

四 SOA架构

SOA架构是一种面向服务的架构,基于分布式系统,将不同业务功能按服务进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。

SOA架构的特点:

  1. 基于SOA的架构思想,将重复公用的功能抽取为组件,以服务的方式为不同的系统提供服务。
  2. 不同系统与服务之间采用webservice,rpc等方式进行通信。
  3. ESB(Enterprise Service BUS)企业级服务总线作为不同系统与服务之间的桥梁。

SOA架构的优点:

  1. SOA架构将重复的功能抽取为服务,提高开发效率,提高系统的可重用性,可维护性。
  2. 可以针对不同服务的特点按需伸缩。
  3. 采用ESB减少系统中的接口耦合。

SOA架构的缺点:

  1. 系统和服务之间界限模糊,会导致抽取的服务的粒度过大,系统与服务之间耦合性高。
  2. 虽然使用ESB,但是服务的接口协议不固定,种类繁多,不利于系统维护。

五 微服务架构

基于SOA架构的思想,为了满足移动互联网对大型项目及多客户端的需求,对服务层进行细粒度的拆分,所拆分的每个服务只能完成某个特定的业务功能,如订单服务只能实现定单相关的业务,用户服务实现用户管理相关的业务等等,服务的粒度很小,所以称作微服务架构。

微服务架构的特点:

  1. 服务层按业务拆分为一个一个微服务,每个微服务的职责单一。
  2. 微服务之间采用RESTful,RPC等轻量级协议传输。
  3. 有利于采用前后端分离架构。

微服务架构的优点:

  1. 微服务架构中的服务拆分粒度更细,有利于资源的重复利用,提高开发效率。
  2. 可以更加精准的指定每个服务的优化方案,按需伸缩。
  3. 适用于互联网时代,产品迭代周期更短。

微服务架构缺点:

  1. 由于每个业务流程需要多个微服务通过网络交互来完成,所以微服务架构系统开发的复杂度增加。
  2. 微服务过多,服务治理的成本高,不利于系统的维护。
物联网技术-第2章-物联网技术架构 • 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。 阅读详情

相关推荐

免费升级哨兵2号分辨率!用SRCNN深度学习模型实现10米→2.5米超分重建

本文详细介绍了如何利用SRCNN深度学习模型,将哨兵2号遥感影像的分辨率从10米免费提升至2.5米。文章提供了从数据准备、模型训练到部署应用的全流程实战指南,旨在通过AI应用技术,为农业监测、城市规划等领域提供更高精度的影像数据支持。

coffee的博客 524

架构演变过程

架构演变过程 单体架构 、垂直应用架构、分布式架构、SOA、微服务架构、ServiceMesh

杨宇昌的博客 2941

基于Pixhawk与OpenMV的无人机视觉引导精准降落系统设计与实现

本文详细介绍了基于Pixhawk飞控与OpenMV视觉模块的无人机精准降落系统设计与实现。系统通过OpenMV识别Apriltag标签,结合MAVLink通信将视觉数据发送给Pixhawk,实现厘米级精准降落。文章涵盖硬件连接、软件配置、核心代码逻辑解析及实战调试技巧,为无人机自动充电、物流配送等场景提供可靠解决方案。

weixin_29189377的博客 320

常用的项目架构方法

大部分开发对项目架构都不会陌生,有过几年开发经验的同学更是深有体会,在这里分享我曾使用过的3套项目架构,并且谈一谈其中的优劣。

微醺的博客 7749

研发工作量科学量化评估模型:从多维系数到等级落地指南

摘要:本文提出了一套基于多维系数的科学量化评估模型,用于精准评估软件开发工作量。该模型从需求复杂度、技术难度、质量要求和依赖风险四个核心维度进行量化评估,通过系数乘积计算综合工作量。文章详细说明了各维度的系数区间划分标准,并演示了从基础工作量估算到综合系数计算的具体步骤。该模型通过结构化评估过程,将主观经验转化为客观量化指标,帮助团队提高工作量评估的准确性,增强项目交付的可预测性。其价值在于使评估过程透明化、结构化和可追溯,从而减少项目延期风险,优化资源规划。

友莘居士的博客 1684

产品经理-面试题目--持续更新

答:面试官,你好,我叫XXX,来自于XXXX,我系统的学习过软件开发,也主动的积累了不少产品方面的实战经验,在学习期间,我自己独立的完成了2个深度项目,一个是仿抖音的短视频APP全流程设计,另外一个是电商后台系统的模块,通过这些项目,我不仅熟练使用Axure等工具做出高保真原型图和清晰的产品框架,也形成了数据驱动和用户优先的思维习惯,另外,我也注重拓展自己的能力边界,拿到了CAIE人工智能证书,我希望能把AI能力融入到产品场景,提升体验和效率,我非常喜欢产品工作带来的创造性和逻辑性,希望有机会加入贵公司。

m0_63966958的博客 958

架构师之路---架构的演变详解

EAI 是将基于异构平台下的业务应用系统集成在一起的一种技术,是解决各个系统之间的互联、互相传输数据的一种解决方案。那为什么要出现这种解决方案?这主要是企业在发展过程中,出现了各种各样的应用系统比如ERP、PLM、财物系统、CRM等等,这些系统都是相互独立的,相互无法互通互联,形成 “信息孤岛”,企业无法实现对整体业务运作和流程管理的全面掌控。而 EAI 可以通过中间件作为粘合剂来连接企业内外各种业务相关的异构系统、应用以及数据源,从而满足企业内部应用系统之间信息共享的需要。

菠萝吹雪爱Java的博客 2462

大唐杯历届省赛押题训练(6)

考试-TD-LTE无线网络设备介绍-TD-LTE网络架构一、单选题1TD-LTE的接入网E-UTRAN由下列哪些网元组成( )。0分/1分A、RNCB、BTSC、eNode BD、Node B提交答案:B正确答案:C考点TD-LTE网络架构解析暂无试题解析二、多选题1关于LTE网络整体结构,哪些说法是正确的( )0分/2分A、E-UTRAN用E-NodeB替代原有的RNC-NodeB结构B、E-NodeB间的接口为S1接口C、各网络节点之间的接口使用IP传输。

nimo观察者 638

项目架构简介

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

SunnerChen的博客 1606

NLTK中WordNet与同义词处理

通过本教程,学习了如何使用NLTK中的WordNet进行自然语言处理任务。首先介绍了WordNet的基本概念及其在NLTK中的集成使用,接着讲解了如何查找同义词、反义词等词汇关系,并结合实际应用演示了语义相似性计算。这些技能在文本分析、情感分析、信息检索等场景中有广泛应用,可以帮助开发者构建更智能的自然语言处理系统。掌握这些基本操作后,可以进一步探索WordNet的其他高级功能,结合其他NLTK工具进行更复杂的语言分析。

Mr数据杨 476

大厂面试级C#上位机完整项目(终极版):工业级Modbus协议封装 + 标准多线程采集 + 全链路异常处理

(Modbus统一通信接口)、(采集服务接口)职责:定义所有核心操作的标准接口,屏蔽底层差异(RTU/TCP、串口/TCP),面向接口编程的核心体现。新增协议/采集方式,只需实现接口,核心代码零改动。/// 自定义Modbus通信异常类 - 大厂标准,区分通信异常和其他异常/// 包含异常信息+内部异常,可溯源完整错误堆栈,面试必写本次项目是对标大厂工控上位机岗位的终极版实战项目,所有代码、架构、设计都遵循大厂标准,覆盖了面试官考察的所有核心考点✅ 纯手写Modbus协议,体现你对协议底层的吃透。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 858

项目架构演进

一个大的java项目架构演进过程(淘宝为例): 一:总架构 二、演进过程 1. 小型网站所有服务都在一台服务器上,俗称All in One 但随着用户越来越多,访问量越来越大,硬盘,CPU,内存等资源开始吃紧,性能满足不了,开始演进: 开始配置文件服务器,数据服务器(配置更好更快更大的硬盘),应用服务器(配置好的CPU、内存),如果文件服务器服务器挂了,还是可以访问数据和应用...

热爱我的热爱 396

【DeepSeek R1构建本地RAG知识库】数据结构化清洗-知识图谱制作、使用、dify集成

本文探讨了在构建本地RAG(Retrieval-Augmented Generation)系统时,如何通过引入知识图谱来增强系统的知识理解能力。传统的向量数据库和嵌入模型虽然能处理语义匹配,但无法有效捕捉知识间的关联性。知识图谱通过“实体-关系-属性”的结构化表示,能够更好地支持推理、推荐和多跳问答等高级功能。文章详细介绍了知识图谱的基本概念、制作思路,以及如何使用Neo4j图数据库进行知识图谱的构建和查询。通过实例展示了从PDF文件解析到知识图谱入库的全过程,强调了知识图谱在提升RAG系统性能中的重要作用

少说,多做 567

《架构演进之路》开源项目教程

《架构演进之路》开源项目教程 1. 项目介绍 《架构演进之路》是一个开源项目,旨在汇总和分享各大互联网公司在其发展过程中的架构演进历程。项目包含丰富的案例,从大型网站架构的演化,到具体公司的技术架构实践,为开发者提供了一个学习和参考的宝贵资源。 2. 项目快速启动 首先,您需要克隆或下载项目到本地: git clone https://github.com/hollischuang/Archite...

gitblog_01171的博客 613

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Day100 项目的架构演进

11.2、编写全局配置文件 11.3、编写启动类 运行结果: 12.2、编写容器 12.3、编写测试 13、Ribbon是什么以及使用 13.1、Ribbon的基本使用 13.1.1、配置 13.1.2、测试 13.2、Ribbon实现负载均衡的配置 13.2.2、给当前服务调用下面的某一个服务设置负载均衡 14、Ribbon的工作原理 17.2、在启动类上使用如下注解 17.3、编写远程调用接口 17.4、测试 18、Feign调用

weixin_69595694的博客 1377

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

软件思想:项目架构是设计好的还是演进的?

演进的。

Vitality_Data的博客 282

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

大型Java项目架构演进

大型Java项目架构演进过程 1. All-In-One (所有服务在一台服务器上): 也就是所有的服务都在同一个服务器上,包括应用服务器、文件服务器和数据库 2. 各服务分别部署在不同的服务器上 随着用户越来越多,访问量越来越大,硬盘、CPU、内存等硬件开始吃...

250

架构系列一:大型项目架构演进过程

架构系列一:大型项目架构演进过程 作为一名程序员,单单只会Coding是远远不够的,想要走的更高更完,还必需懂Coding之外的其他东西,如架构设计,系统分析等,今天就架构这块,谈谈自己的理解 一、单机时代 单机时间的应用,都很简单,一个应用,一台服务器,就搞定了,大至的架构设计如下图 用户通过Internet访问某个网站,经过DNS服务器解析,找到对应的服务器地址,请求服务器,响...

zhangbijun1230的专栏 606

一个项目的架构演进

1,公共部分要部署多份,对公共部分的修改,部署,更新都需要重复的操作(例:用户管理模块每个服务都需要有相应的业务代码,而且对应增删改查后各模块都需要同步更新),带来比较大的成本,为了解决这一问题,接下来就进入分布式应用架构阶段。在这个阶段里,将服务内部公用的模块抽取出来,部署成独立的服务,那么需要解决服务之间高效的通信问题。3,服务治理:服务权重,负载均衡,服务熔断,限流等等一些服务治理方面的问题。1,服务的注册和发现:这么多服务如何注册,这么多服务如何被发现。1,服务越来越多,服务如何被发现。

m0_54712443的博客 413

根据合写《架构演进之路》这件事,谈谈什么是项目管理

按照我的个人理解,项目管理就是9个字:带大家做好一件事情。大家可能会疑惑,就这?这么简单? 没错,就这么简单,大道至简,说的可能就是这么回事。

猿脑2.0的博客 1088

大型项目架构演进过程及思考的点

转载自慕课网Geely老师的手记:大型项目架构演进过程及思考的点 原文地址:https://www.imooc.com/article/17545

清锋的博客 425

转 大型项目架构演进过程

大型项目架构演进过程及思考的点小字号GeelyJAVA开发工程师有阴影的地方必定有光12篇手记17推荐Java 从零打造企业级电商实战 - 服务端前后端分离,数据库接口设计,架构设计,功能开发,上线运维1991 人在学作者的热门手记happymmall课程QQ群分享手记3269浏览53推荐19评论找工作的季节之简历及找工作的分享4156浏览39推荐15评论Java从零打造企业级电商项目实战...

weixin_30369041的博客 102

【高可用架构】项目开发及项目高可用架构的演进探索

做过一些项目,也带过一些项目,通过摸索,学习,实践,慢慢对一个高可用,稳定的项目架构有了一些初步的了解,将一些做项目方面的心得简单的总结下来,供自己日后查漏补缺,欢迎探讨。 一,项目的来源 总结工作经历中,项目立项的主要几个思路来源如下: 1. 客户诉求 这类来源最直接,由客户主导项目的需求,客户主动提供项目的目标,项目的诉求,项目组根据客户的述求,进行项目需求的整理,项目方案的落地。 2. 行业趋势 通过了解行业最新的趋势,类比行业内的最佳解决方案,向客户提供采用最新最优技术的解决方案,吸引客户的目光,

路远未至之 1232
上一篇: 区块链,联盟链之Hyperledger Fabric
下一篇: WebSocket入门
至学者
博客等级 码龄9年 180粉丝 773原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值