当前位置:首页 > 燃气灶 > 文章正文

软件架构周全详解(万字图文总结)

编辑:[db:作者] 时间:2024-08-25 06:28:36

大家好,我是mikechen。

软件架构周全详解(万字图文总结)

软件架构对付软件开拓是非常主要的,是全体软件的大脑,也是架构的必备技能,下面我就全面来详解软件架构@mikechen

软件架构

软件架构是指软件系统的设计方案,它决定了软件系统中各个组件之间的关系、功能分配、和架构办法。

这个与建筑设计架构类似,建筑设计架构师卖力设计建筑物的整体构造、布局和功能分配。

而软件架构师,卖力设计软件系统的整体组织构造、模块划分、和功能分配。

两者都须要考虑到业务功能、性能、可扩展性、安全性、以及用户体验等方面。

软件架构模式

学习软件架构,可以提高你的系统设计能力,理解不同的架构模式和设计原则,能够帮助你更好地组织和方案软件系统。

下面,我接着详解主流的软件架构模式:

1.分层架构

分层架构是一种常见的软件架构模式,它将软件系统划分为:多少个层次,每个层次卖力特定的功能。

如下图所示:

这种设计办法,使得系统的构造更加清晰,便于开拓职员理解和互换。

紧张分为3层:

表示层(Presentation Layer):也称为用户界面层,卖力与用户进行交互,包括:用户界面的设计、和实现;业务逻辑层(Business Logic Layer):也称为做事层、或运用层,卖力:处理业务规则、数据处理、和逻辑运算等任务;数据访问层(Data Access Layer):也称为持久化层,卖力:与数据存储系统进行交互,使业务逻辑层可以专注于业务逻辑的处理。

总之,分层架构:是一种常见且灵巧的软件架构模式,适用于大多数中小型软件系统的设计和开拓。

2.事宜驱动架构

事宜驱动架构(Event-Driven Architecture,EDA),是一种软件架构模式,它基于事宜、和的通报来实现系统的组织和通信。

如下图所示:

紧张会包含,4大组件:

1、事宜(Event)

事宜是系统中发生的某种事情、或状态的表示,例如:用户操作、系统缺点、数据更新等,这些都是事宜。

2、发布者(Publisher)

发布者是产生事宜的组件,卖力:将事宜发布到系统中的事宜总线、或行列步队中,使订阅者可以吸收到这些事宜。

3、订阅者(Subscriber)

订阅者是吸收事宜的组件,卖力:订阅感兴趣的事宜,并在事宜发生时进行相应的处理。

4、事宜总线(Event Bus)

事宜总线:是连接发布者和订阅者的中间件,卖力:事宜的通报和分发。

事宜驱动架构中事宜的发布和订阅是异步的,发布者无需等待订阅者的相应即可连续实行,提高了系统的并发性和相应速率。

事宜驱动架构的运用处景:

1.行列步队

事宜驱动架构,常常与行列步队系统结合利用,用于实现可靠的通报和异步处理。

例如:用于构建高可靠性的分布式任务调度系统、日志处理系统...等。

2.实时关照和推送

当须要向用户发送实时关照、或推送时,事宜驱动架构可以帮助实现的即时通报和处理。

例如:社交网络运用中的关照、电子商务运用中的订单状态更新关照...等,这些都可以用事宜驱动架构来办理。

3.繁芜业务流程

当须要处理繁芜的业务流程,事宜驱动架构可以帮助实现业务流程的自动化和灵巧性,例如:事情流系统...等。

3.微做事架构

微做事架构:是一种将软件系统架构,紧张是把单体拆分为多个小型、自治的做事的架构模式。

每个做事都独立支配、独立运行,并通过轻量级的通信机制进行交互。

如下图所示:

紧张会包含,如下6大特点:

1、做事拆分

微做事架构,一样平常是将传统的单体运用拆分为多个小型的做事,并且,每个做事卖力一个特定的业务功能。

微做事架构这种拆分,使得每个做事更加专注、易于理解、和掩护。

2、自治性

每个微做事都是独立支配、独立运行的,具有自己的数据库和代码库。

都可以独立进行开拓,并且测试、和支配,极大的降落了系统之间的耦合度。

3、技能多样性

每个微做事可以利用不同的技能栈和编程措辞,根据业务需求选择最适宜的技能,提高了开拓团队的灵巧性和自由度。

比如:你可以利用自己熟习的Java,也可以利用自己熟习的Go、或者别的开拓措辞来实现。

4、可扩展性

微做事架构:许可每个做事根据须要进行独立的水平扩展,从而提高了系统的整体扩展性、和性能。

5、独立支配

每个微做事都可以独立进行支配、和升级,无需影响其他做事,使得系统更加灵巧、和可靠。

6、团队自治

每个微做事都有自己的团队卖力开拓和掩护,使得团队更加独立、任务更加明确。

微做事架构组件,如下图所示:

常日包括以下几个核心组件:

分布式通信:这是最基本的功能,都会涉及到分布式通信,比如:Dubbo来实现RPC通信等。
做事注册与创造: 做事注册与创造组件,用于管理和掩护微做事的注册信息,常见的有:Consul、Etcd、ZooKeeper...等实现办法。
负载均衡: 负载均衡组件,用于在多个做事实例之间分配要求,以实现负载均衡和高可用性,比如:可以利用Ribbon来结合利用。
行列步队: 行列步队用于实现微做事之间的异步通信,比如:SpringCloudAlibaba微做事,就包含了:RocketMQ行列步队。
分布式追踪: 分布式追踪组件,用于跟踪、和监控微做事架构中的要求流程和性能指标,帮助创造和解决潜在的性能瓶颈、和故障。
配置管理: 配置管理组件:用于集中管理微做事的配置信息,包括:环境变量、数据库连接、日志级别......等。

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

4、云原生架构

云原生架构是一种基于云打算、和容器化技能的运用架构模式。

云原生架构,紧张会包含:Docker容器、K8S容器编排、和做事网格等。

如下图所示:

Docker容器

Docker容器技能使得运用程序及其依赖可以被打包成一个独立的容器,包含了:运行时环境、代码、依赖库等。

Docker容器就像集装箱一样,可以将运用程序及其所有依赖项打包成一个独立的单元。

集装箱和Docker容器都供应了一种隔离的环境,使得内部的货色、或运用程序不受外部环境的影响。

并且,集装箱和Docker容器都是相对轻量级的,可以在短韶光内进行加载、卸载和运输,因此运行效率非常高。

Kubernetes容器编排

有了容器来办理支配,后续就须要涉及到:容器支配后的编排,这便是Kubernetes。

Kubernetes是一个开源的容器编排引擎,是Google开拓的,用于自动化支配、扩展和管理容器化运用程序。

供应了丰富的功能,如:自动化支配、负载均衡、故障规复、自动扩展。


等,使得运用程序能够更加灵巧地运行在各种环境中。

做事网格

做事网格是一种用于管理微做事之间通信的根本举动步伐层,它通过透明地注入网络代理来实现微做事之间的通信、监控和安全掌握。

做事网格可以帮助开拓职员办理微做事架构中的通信问题,提高系统的可不雅观察性、可靠性和安全性。

5.云架构

云打算架构:是指基于云打算技能实现的系统架构。

云架构,紧张利用云打算资源,比如:打算、存储、网络.....等,来构建和支配运用程序,供应各种做事和功能。

整体架构,如下图所示:

紧张会包含:

1、IaaS(根本举动步伐即做事)

IaaS, 紧张供应根本的打算、存储、和网络资源。

如下图所示:

紧张会包含,如下3大组件:

虚拟机(VM): 虚拟机是IaaS的根本组件,它将物理做事器虚拟化为多个虚拟做事器,每个虚拟机都拥有自己的操作系统、和运用程序环境。
存储做事: IaaS供应了各种类型的存储做事,包括:块存储、文件存储和工具存储等,用于存储用户的数据和运用程序。
网络做事: IaaS供应了网络做事和功能,包括:虚拟网络、负载均衡、防火墙等,用于构建和管理用户的网络环境。

以上

本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集》里面。

本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/rqz/156890.html

XML地图 | 自定链接

Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码

声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com