架构师必学的基础知识
本文最后更新时间2023-02-06 10:34,已超过691天没有更新,若内容或图片失效,请留言反馈。
深易凡软件库2月6日消息,首先,作为一名合格的架构师,你应该知道软件架构的概念是什么,并且理解架构的定义:
1.软件架构是系统的草图。
2.软件体系结构描述的对象是间接构成系统的通用组件。
3.组件之间的链接清楚而绝对地描述了组件之间的通信。
4.在完成阶段,这些通用组件被细化为实用组件,例如详细描述一个类或一个对象。
5.在面向对象类别中,组件之间的链接通常由接口来完成。
第二,建筑师细分,基本可以分为三类:
1.系统架构师:服务器负载、可靠性、可伸缩性、扩展、数据库分段、缓存使用等。
2.使用架构师:了解业务,梳理模型,设计表单,接口,数据交互等。
3.业务架构师:你也可以打电话给业务领域专家、行业专家、产品顾问和高级参谋。通常我们说的建筑师是1和2的组合。
三、稀有软件架构分类:
1)分层架构
分层架构是最稀有的软件架构,也是一种实用的规范架构。如果不知道用什么架构,就用吧。
这种架构把软件分成几层,每层都有明确的角色和分工,不需要知道其他层的细节。这些层通过接口相互通信。
虽然没有明确约定软件必须分红多少层,但是四层的结构是最少见的。
表示:用户界面,用于视觉和用户交互。
业务层:完整的业务逻辑。
持久性:提供数据,SQL语句放在这一层。
数据库:保存数据。
一些软件在逻辑层和持久层之间增加了一个服务层,为不同的业务逻辑需求提供一些通用接口。
用户的恳求会依次经过这四层,任何一层都不能跳过。
优势
易于构建,易于理解和开发
不同技能的程序员可以分为不同的层次,这自然适合大多数软件公司的组织结构。
每一层都可以独立测试,其他层的接口都是模仿的。
缺点
一旦环境发生变化,对代码进行调整或添加功能,通常是耗时耗力的。
部署比较费力,即使只修改了一个小中心,也往往需要重新部署整个软件,不容易继续发布。
例如,当软件升级时,整个服务需要暂停。
扩展性差。当用户恳求少量添加时,需要依次展开每一层。因为每一层都是外耦合的,所以会很难扩展。
2)事件驱动架构
事件是当表单改变时软件被撤回的通知。
事件驱动架构是一种通过事件实现通信的软件架构。它分四部分支付红利。
事件队列:接受事物的入口。
事件仲裁者:把不同的东西分发给不同的业务逻辑单元。
事件通道:分配器和处置器之间的通信通道。
事件处理器:完成业务逻辑,处置完成后,收回该事项,触发下一步操作。
对于易项目,可以将交易队列、分配器、交易通道合二为一,整个软件分为分红代理和交易处理程序两部分。
优势
分布式异步架构,事务处理器之间高度解耦,软件可扩展性好。
适用性广,各种工程都可以。
功能好,因为事物的异步性,软件不容易梗塞。
事务处理程序可以独立地加载和卸载,从而易于部署。
缺点
说到异步编程(考虑远程通信、获得echo等。),发展绝对复杂。
很难支持原子操作,回滚也很难,因为事情会触及多个处理器。
分布式和异步的特性使得这个架构很难测试。
3)微核结构
微内核架构(Microkernel architecture)又称“插件架构”,是指软件的内核绝对小,次要功能和业务逻辑由插件完成。
核心通常只包括系统操作的最小功能。插件之间是相互独立的,插件之间的通信应该保持在最低限度,这样可以防止出现相互依赖的问题。
优势
功能扩展性好,需要什么功能,开发个插件就行。
功能是隔离的,插件可以独立加载和卸载,更容易部署。
高度定制化,适应不同开发需求。
可以一步一步开发,逐步添加功能。
缺点
可扩展性差,内核通常是独立的单元,不容易做到分布式。
开发绝对困难,因为涉及到插件与内核的通信,以及外部插件注销机制。
4)微服务架构
微服务架构是面向服务架构(简称SOA)的推广。
每个军种都是独立部署的单位。这些单元是分布式的,彼此解耦,通过远程通信协议(比如REST和SOAP)连接。
微服务架构的红利以三种形式完成。
RESTful API形式:通过API提供服务,云服务属于这一类。
RESTful用法:通过传统的网络协议或者使用协议来提供服务,这通常是一个多功能的使用程序,在企业之外很少见。
集中式音频形式:音频代理可以完成音频排队、负载均衡、一致性日志记录和异常处理,但缺点是会出现单点故障。例如,音频代理应该是集群的。
优势
良好的可扩展性和服务间的低耦合性。
易于部署,软件从单个可部署单元被分成多个服务,每个服务是一个可部署单元。
易于开发,各组件可持续集成,可实时部署,不连续推进。
易于测试,可以独立测试每个服务。
缺点
例如,由于强调相互独立和低耦合,服务被细分。这就造成了系统对少量微服务的依赖,使得系统非常混乱和轻便,功能也会很差。
一旦服务之间的需求沟通(即一个服务需要另一个服务),整个架构将变得复杂。典型的例子是一些常见的实用程序类。一种解决方案是将它们复制到每个服务中,并交换冗余以简化架构。
去中心化的本质使得这种架构很难完成原子操作,回滚销售会更加困难。
5)云架构
云架构主要处理可扩展性和并发性问题,是最容易扩展的架构。
其扩展性高的次要原因是不使用本地数据库,而是将所有数据复制到内存中,成为可复制的内存数据单元。然后,可以将业务处理封装到处理单元中。当访问次数增加时,将建立一个新的处理单元;当访问次数增加时,处理单元将被关闭。因为没有本地数据库,可扩展性的最大瓶颈消失了。因为每个处理单元的数据都在内存中,所以最好实现数据持久性。
这种形式分为两部分:处理单元和虚拟化中间件。
处置单元:完整的业务逻辑
虚拟的两个组件:通信、会话中的持久性、数据复制、分布式处理和处理单元的部署。
虚拟双头件包括四个组件。
消息传递网格:管理用户请求和会话,并决定在请求发出时分配哪个处理单元。
数据网格:将数据复制到各个处理单元,即数据同步。确保处理单元丢失异常数据。
处理网格:可选地,如果一个请求涉及不同类型的处理单元,这两个部分作为协调处理单元。
部署管理器:用于启动和关闭处理单元,监控负载和响应。当负载增加时,处理单元将再次启动,当负载增加时,处理单元将关闭。
优势
高负载、高可扩展性
静态部署
缺点
完成复杂,成本高。
二是适合网站,不适合数据吞吐量小的大型数据库。
难以测试
总结:
以上就是今天所分享的内容了,更多行业知识、软件引荐、功能比照、工具测评请关注深易凡软件库。每天给大家带来更高效的企业服务软件,其中包括有微信,惠易购,赞聊,淘米购,叮咚盲盒,青蛙易购,支付宝,香蕉赶集,乐享购,淘盟铺,亲聊,探聊,诚智通,伶信,QQ,新易选,红包辅助,享乐好物,易民购,梦幻盲盒,苹果微信多开,微信分身,安卓微信多开,淘客购,旗语,点约,优品铺,创信等现如今热门社交软件,其中功能有秒抢,避雷,埋雷软件,扫尾,单透软件等一些红包强项外挂功能软件免费下载使用!
本文章的二维码
用手机扫码打开本页
发表评论