帮助文档
专业提供香港服务器、香港云服务器、香港高防服务器租用、香港云主机、台湾服务器、美国服务器、美国云服务器vps租用、韩国高防服务器租用、新加坡服务器、日本服务器租用 一站式全球网络解决方案提供商!专业运营维护IDC数据中心,提供高质量的服务器托管,服务器机房租用,服务器机柜租用,IDC机房机柜租用等服务,稳定、安全、高性能的云端计算服务,实时满足您的多样性业务需求。 香港大带宽稳定可靠,高级工程师提供基于服务器硬件、操作系统、网络、应用环境、安全的免费技术支持。
服务器资讯 / 香港服务器租用 / 香港VPS租用 / 香港云服务器 / 美国服务器租用 / 台湾服务器租用 / 日本服务器租用 / 官方公告 / 帮助文档
【架构师】零基础到精通——架构发展
发布时间:2024-02-27 23:03:47   分类:帮助文档
【架构师】零基础到精通——架构发展





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



架构演进
1、单体应用架构(Monoliths)1-1、优点1-2、缺点
2、垂直应用架构(Vertical)2-1、优点2-2、缺点
3、分布式架构(Distributed)3-1、优点3-2、缺点
4、面向服务化架构(SOA)4-1、优点4-2、缺点
5、微服务架构(Micro Service)5-1、优点5-2、缺点5-3、微服务定义




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

1-1、优点
项目架构简单,小型项目的话, 开发成本低项目部署在一个节点上, 维护方便
1-2、缺点
全部功能集成在一个工程中,对于大型项目来讲不易开发和维护项目模块之间紧密耦合,单点容错率低无法针对不同模块进行针对性优化和水平扩展
2、垂直应用架构(Vertical)
随着访问量的逐渐增大,单一应用只能依靠增加节点来应对,但是这时候会发现并不是所有的模块都会有比较大的访问量。还是以上面的电商为例子, 用户访问量的增加可能影响的只是用户和订单模块, 但是对消息模块的影响就比较小. 那么此时我们希望只多增加几个订单模块, 而不增加消息模块. 此时单体应用就做不到了, 垂直应用就应运而生了。所谓的垂直应用架构,就是将原来的一个应用拆成互不相干的几个应用,以提升效率。比如我们可以将上面电商的单体应用拆分成:
电商系统(用户管理 商品管理 订单管理)后台系统(用户管理 订单管理 客户管理)CMS系统(广告管理 营销管理)
这样拆分完毕之后,一旦用户访问量变大,只需要增加电商系统的节点就可以了,而无需增加后台和CMS的节点。

2-1、优点
系统拆分实现了流量分担,解决了并发问题,而且可以针对不同模块进行优化和水扩展一个系统的问题不会影响到其他系统,提高容错率
2-2、缺点
系统之间相互独立, 无法进行相互调用系统之间相互独立, 会有重复的开发任务
3、分布式架构(Distributed)
即分布式架构当垂直应用越来越多,重复的业务代码就会越来越多。这时候,我们就思考可不可以将重复的代码抽取出来,做成统一的业务层作为独立的服务,然后由前端控制层调用不同的业务层服务呢?
这就产生了新的分布式系统架构。它将把工程拆分成表现层和服务层两个部分,服务层中包含业务逻辑。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。
3-1、优点
抽取公共的功能为服务层,提高代码复用性
3-2、缺点
系统间耦合度变高,调用关系错综复杂,难以维护
4、面向服务化架构(SOA)
在分布式架构下,当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心对集群进行实时管理。此时,用于资源调度和治理中心(SOA Service Oriented Architecture,面向服务的架构)是关键。
4-1、优点
使用注册中心解决了服务间调用关系的自动调节
4-2、缺点
服务间会有依赖关系,一旦某个环节出错会影响较大( 服务雪崩 )服务关心复杂,运维、测试部署困难
5、微服务架构(Micro Service)
微服务架构在某种程度上是面向服务的架构SOA继续发展的下一步,它更加强调服务的"彻底拆分"。

5-1、优点
更好的开发规模更快的开发速度支持迭代开发或现代化增量开发充分利用现代软件开发生态系统的优势(云、容器、 DevOps、Serverless)支持水平缩放和细粒度缩放小体量,较低了开发人员的认知复杂性
5-2、缺点
更高数量级的活动组件(服务、数据库、进程、容器、框架)复杂性从代码转移到基础设施RPC 调用和网络通信的大量增加整个系统的安全性管理更具有挑战性整个系统的设计变得更加困难引入了分布式系统的复杂性
5-3、微服务定义

一组小的服务 原来的单块服务都是业务能力大而全的打包在一个单块中,微服务主张把这些单块服务进行拆分,形成一个个小的独立的服务。这里有个最大的特点是“小”,那么纠结要小到什么程度才为之小,很多同学都会纠结这个小的点,因为这个小并没有特别和明确的规定,所以这也就引申出了现在很多DDD领域驱动设计来指引微服务的拆分,但基本上一个微服务能让一个开发人员能够独立的理解,基本上就称为一个微服务,具体有多少行代码并不是很关键。 独立的进程 微服务是运行在独立的进程当中,例如java程序部署在tomcat,也可以部署在容器docker中,容易本身也是一种进程,所以微服务可以以进程的方式去扩展。 轻量级的通讯 微服务主张使用轻量级去构建通讯机制,例如http,固定消息格式和减少消息格式,服务之间不耦合,让通讯尽量轻量。 基于业务能力 微服务是基于业务能力进行构建,例如有用户服务,登陆服务,商品服务,基于这些业务能力去构建这些微服务。 独立部署 微服务被拆分开后,每个团队独立维护自己的微服务,开发,迭代自己的微服务,是可以独立的去部署,团队之间是不需要特别的去协调,这些对业务开发维护可以做到更加的敏捷,轻量,快速。 无集中式管理 原来单体服务是需要整个技术团队是需要独立的架构团队去管理,统一架构,统一技术栈,统一存储,微服务就不太一样,微服务主张每个团队根据自己的技术需要,选择自己最熟悉,最高效解决问题的技术栈,甚至选择不同存储方式。




香港云服务器租用推荐
服务器租用资讯
·广东云服务有限公司怎么样
·广东云服务器怎么样
·广东锐讯网络有限公司怎么样
·广东佛山的蜗牛怎么那么大
·广东单位电话主机号怎么填写
·管家婆 花生壳怎么用
·官网域名过期要怎么办
·官网邮箱一般怎么命名
·官网网站被篡改怎么办
服务器租用推荐
·美国服务器租用
·台湾服务器租用
·香港云服务器租用
·香港裸金属服务器
·香港高防服务器租用
·香港服务器租用特价