【架构师】零基础到精通——架构发展

这篇具有很好参考价值的文章主要介绍了【架构师】零基础到精通——架构发展。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

博客昵称:架构师Cool
最喜欢的座右铭:一以贯之的努力,不得懈怠的人生。
作者简介:一名Coder,软件设计师/鸿蒙高级工程师认证,在备战高级架构师/系统分析师,欢迎关注小弟!
博主小留言:哈喽!各位CSDN的uu们,我是你的小弟Cool,希望我的文章可以给您带来一定的帮助
百万笔记知识库, 所有基础的笔记都在这里面啦,点击左边蓝字即可获取!助力每一位未来架构师!
欢迎大家在评论区唠嗑指正,觉得好的话别忘了一键三连哦!😘

1、单体应用架构(Monoliths)

互联网早期,一般的网站应用流量较小,只需一个应用,将所有功能代码都部署在一起就可以,这样可以减少开发、部署和维护的成本。比如说一个电商系统,里面会包含很多用户管理,商品管理,订单管理,物流管理等等很多模块,我们会把它们做成一个web项目,然后部署到一台tomcat服务器上。

零基础准备架构分析师怎么做,架构设计,架构,服务器,运维,java,系统架构

1-1、优点

  • 项目架构简单,小型项目的话, 开发成本低
  • 项目部署在一个节点上, 维护方便

1-2、缺点

  • 全部功能集成在一个工程中,对于大型项目来讲不易开发和维护
  • 项目模块之间紧密耦合,单点容错率低
  • 无法针对不同模块进行针对性优化和水平扩展

2、垂直应用架构(Vertical)

随着访问量的逐渐增大,单一应用只能依靠增加节点来应对,但是这时候会发现并不是所有的模块都会有比较大的访问量。还是以上面的电商为例子, 用户访问量的增加可能影响的只是用户和订单模块, 但是对消息模块的影响就比较小. 那么此时我们希望只多增加几个订单模块, 而不增加消息模块. 此时单体应用就做不到了, 垂直应用就应运而生了。所谓的垂直应用架构,就是将原来的一个应用拆成互不相干的几个应用,以提升效率。比如我们可以将上面电商的单体应用拆分成:

  • 电商系统(用户管理 商品管理 订单管理)
  • 后台系统(用户管理 订单管理 客户管理)
  • CMS系统(广告管理 营销管理)

这样拆分完毕之后,一旦用户访问量变大,只需要增加电商系统的节点就可以了,而无需增加后台和CMS的节点。

零基础准备架构分析师怎么做,架构设计,架构,服务器,运维,java,系统架构

2-1、优点

  • 系统拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水扩展
  • 一个系统的问题不会影响到其他系统,提高容错率

2-2、缺点

  • 系统之间相互独立, 无法进行相互调用
  • 系统之间相互独立, 会有重复的开发任务

3、分布式架构(Distributed)

即分布式架构当垂直应用越来越多,重复的业务代码就会越来越多。这时候,我们就思考可不可以将重复的代码抽取出来,做成统一的业务层作为独立的服务,然后由前端控制层调用不同的业务层服务呢?

这就产生了新的分布式系统架构。它将把工程拆分成表现层和服务层两个部分,服务层中包含业务逻辑。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。
零基础准备架构分析师怎么做,架构设计,架构,服务器,运维,java,系统架构

3-1、优点

  • 抽取公共的功能为服务层,提高代码复用性

3-2、缺点

  • 系统间耦合度变高,调用关系错综复杂,难以维护

4、面向服务化架构(SOA)

在分布式架构下,当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心对集群进行实时管理。此时,用于资源调度和治理中心(SOA Service Oriented Architecture,面向服务的架构)是关键。
零基础准备架构分析师怎么做,架构设计,架构,服务器,运维,java,系统架构

4-1、优点

  • 使用注册中心解决了服务间调用关系的自动调节

4-2、缺点

  • 服务间会有依赖关系,一旦某个环节出错会影响较大( 服务雪崩 )
  • 服务关心复杂,运维、测试部署困难

5、微服务架构(Micro Service)

微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步,它更加强调服务的"彻底拆分"。

零基础准备架构分析师怎么做,架构设计,架构,服务器,运维,java,系统架构

5-1、优点

  • 更好的开发规模
  • 更快的开发速度
  • 支持迭代开发或现代化增量开发
  • 充分利用现代软件开发生态系统的优势(云、容器、 DevOps、Serverless)
  • 支持水平缩放和细粒度缩放
  • 小体量,较低了开发人员的认知复杂性

5-2、缺点

  • 更高数量级的活动组件(服务、数据库、进程、容器、框架)
  • 复杂性从代码转移到基础设施
  • RPC 调用和网络通信的大量增加
  • 整个系统的安全性管理更具有挑战性
  • 整个系统的设计变得更加困难
  • 引入了分布式系统的复杂性

5-3、微服务定义

零基础准备架构分析师怎么做,架构设计,架构,服务器,运维,java,系统架构

  • 一组小的服务

    原来的单块服务都是业务能力大而全的打包在一个单块中,微服务主张把这些单块服务进行拆分,形成一个个小的独立的服务。这里有个最大的特点是“小”,那么纠结要小到什么程度才为之小,很多同学都会纠结这个小的点,因为这个小并没有特别和明确的规定,所以这也就引申出了现在很多DDD领域驱动设计来指引微服务的拆分,但基本上一个微服务能让一个开发人员能够独立的理解,基本上就称为一个微服务,具体有多少行代码并不是很关键。

  • 独立的进程

    微服务是运行在独立的进程当中,例如java程序部署在tomcat,也可以部署在容器docker中,容易本身也是一种进程,所以微服务可以以进程的方式去扩展。

  • 轻量级的通讯

    微服务主张使用轻量级去构建通讯机制,例如http,固定消息格式和减少消息格式,服务之间不耦合,让通讯尽量轻量。

  • 基于业务能力

    微服务是基于业务能力进行构建,例如有用户服务,登陆服务,商品服务,基于这些业务能力去构建这些微服务。

  • 独立部署

    微服务被拆分开后,每个团队独立维护自己的微服务,开发,迭代自己的微服务,是可以独立的去部署,团队之间是不需要特别的去协调,这些对业务开发维护可以做到更加的敏捷,轻量,快速。

  • 无集中式管理

    原来单体服务是需要整个技术团队是需要独立的架构团队去管理,统一架构,统一技术栈,统一存储,微服务就不太一样,微服务主张每个团队根据自己的技术需要,选择自己最熟悉,最高效解决问题的技术栈,甚至选择不同存储方式。文章来源地址https://www.toymoban.com/news/detail-785510.html

到了这里,关于【架构师】零基础到精通——架构发展的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [架构之路-152]-《软考-系统分析师》- 8-软件工程-2-软件工程的N维矩阵模型与软件开发方法(形式化方法、逆 向 工 程)

    8.1  软件工程的矩阵模型 横轴X(时间):是软件的生命周期 :需求分析=》架构设计=》编程实现=》测试=》版本发布=》部署运行 纵轴Y1维度/视角:软件开发活动, 不同什么周期阶段,有不同的开发活动,包括需求规格、设计文档、编码、测试规范、测试用例等活动。 纵轴

    2024年02月05日
    浏览(87)
  • 大数据分析师题库(一)

    1.【多选题】Hadoop 的生态系统包括()。 A:Zookeeper B:HBase C:Yarn D:Hive 正确答案:ABCD 2.【多选题】Spark 的设计遵循“一个软件栈满足不同应用场景”的理念,形成了一套完整的生态系统,具体包括()。 A:Spark Streaming B:Spark Core C:Graphx D:SparkSQL 正确答案:ABCD 答案解析:Spark 的设

    2024年02月12日
    浏览(39)
  • 系统分析师:全程指导例题

    题解:这里假设能并行处理,画流水线时空图如下: 这里可以看到,处理4个数据需要15At,因此实际速率是4/15At,流水线效率为忙碌时间与总时间对比,也可以看成忙碌时空区/总时空区,即6*4/15*4=2/5。选择D和B。另外:加速比则是不启用流水线和启用流水线的时间比。 题解:

    2024年02月07日
    浏览(62)
  • 数据分析师 ---- SQL强化(3)

    从听歌流水中找到18-25岁用户在2022年每个月播放次数top 3的周杰伦的歌曲 表:play_log 表:song_info 表:user_info 关于这样的题我们需要找出需要使用的数据,然后再一步一步的解决问题 多表关联:找出每个月周杰伦每一首歌的的播放量 生成排名:根据每一首歌的播放量生成每个月

    2024年02月04日
    浏览(47)
  • 数据分析师 ---- SQL强化(1)

    最近在找工作中发现,数据分析师的笔试多数会涉及SQL,但是笔试中SQL的难度和我们在学习中和平常遇到的不是一个层次,笔试中的问题更加的贴近业务,对于应届生来说还是比较有难度的(也可能是我太菜)。 这个SQL专栏会记录自己在面试或者在刷题中遇到比较有价值的题目

    2023年04月21日
    浏览(69)
  • 数据分析师 ---- SQL强化(2)

    现有试卷信息表examination_info(exam_id试卷ID, tag试卷类别, difficulty试卷难度, duration考试时长) 录题同学有一次手误将部分记录的试题类别tag、难度、时长同时录入到了tag字段, 请帮忙找出这些录错了的记录,并拆分后按正确的列类型输出。 由示例数据结果输出如下: 创建表

    2024年02月05日
    浏览(47)
  • 系统分析师知识点汇总

    目录 1.计算机组成 1.1计算机组成与分类 1.1.1计算机的组成 1.2.1主存储器(内存) 1.2.2辅助存储器(外存磁盘如硬盘) 1.2.3Cache缓存 1.3输入输出接口 1.3.1输入输出方式 1.3.2总线和接口 1.4各种体系结构 1.4.2流水线技术 1.4.3并行处理 1.4.4互联网络 2.操作系统 2.1操作系统的类型与结

    2023年04月08日
    浏览(98)
  • 2022系统分析师案例分析真题背记内容

    以下内容仅为个人根据当年系分案例真题问题整理的偏需要记背的考点答案,方便个人背诵和记忆使用。方便文字转语音,所以内容全为纯文字内容,以下内容仅供参考。 1.数据流图: 数据流图的特点:通过系统内数据的流动来描述系统功能的-一种方法。强调系统中的数据流动

    2024年02月06日
    浏览(55)
  • 数据分析师:解读数据背后的故事

    数据 在当今信息时代中扮演着至关重要的角色,而 数据分析师 则是解读和发掘数据中隐藏信息的关键人物。作为数据分析师,他们运用 统计学 、 机器学习 和 数据可视化 等技术手段,从海量的数据中提取出有价值的信息和洞察,并将其转化为可供决策和行动的建议。数据

    2024年02月16日
    浏览(41)
  • 数据分析案例-数据分析师岗位招聘信息可视化

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 ​编辑 1.数据集介绍 2.实验工具 3.实验过程 3.1加载数据 3.2数据预处理 3.3数据可视化

    2024年02月16日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包