大号在练葵花宝典 发表于 2025-2-18 22:06:21

架构的演进

架构的演进


https://i-blog.csdnimg.cn/img_convert/fe09a35e7fed7e438ab603de7842419e.png
单体架构


https://i-blog.csdnimg.cn/img_convert/5c3b60ddd783dc26ac9ba34f98c1532d.png
摆设到一个 tomcat 服务器上只有一个节点:单机单体架构
集群后叫做:多机的单体架构
优点:


[*]简单:开辟摆设都很方便,小型项目首选
缺点:


[*]项目启动慢
[*]可靠性变差:D 模块出现了题目,会影响 A、B、C
[*]可伸缩性差:访问 C 模块的人特殊多,没法对 C 进行扩展
[*]扩展性和可维护性都比较差
[*]性能比较低:一个呆板中就摆设了 ABCD 四个模块,性能肯定没有比单独摆设的高

垂直架构

在某个领域进行细分就叫垂直。
eg.淘宝什么都买 京东:买家电 唯品会:卖打折商品 聚美优品:卖化妆品

https://i-blog.csdnimg.cn/img_convert/c05ef35a8c9ec3ec7445d0586a50cd09.png


[*]垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构。
单体架构存在的题目(相较于垂直架构的变化):


[*]项目启动慢 ---> 好了点点
[*]可靠性差 ---> 好了点点
[*]可伸缩性差 --->好了点点,可以搭建集群
[*]扩展性和可维护性差--->好了点点
[*]性能低 ---> 好了点点
垂直架构存在的题目:


[*]重复功能太多:


[*]

[*]比如用户管理模块


https://i-blog.csdnimg.cn/img_convert/5973198ab5564372ff63e162e8f553fb.png
分布式架构

重复的服务抽离出来形成独立的服务

https://i-blog.csdnimg.cn/img_convert/d2681d38ccf1e2991983365d3340ed56.png


[*]分布式架构是指在垂直架构的基础上,将公共业务模块抽取出来,作为独立的服务,供其他调用者消耗,以实现服务的共享和重用。
[*]RPC:Remote Procedure Call长途过程调用。有非常多的协媾和技能来都实现了RPC的过程。比如:HTTP REST风格,Java RMI规范、WebService SOAP协议、Hession等等。
垂直架构存在的题目:


[*]重复功能太多
分布式架构存在的题目:


[*]服务提供方一旦产生变更,所有消耗方都需要变更
ps:
垂直架构,前后端分离架构,集群摆设都可以算作轻量级分布式架构。

SOA 架构

办理:


[*]分布式架构存在的题目:服务提供方一旦产生变更,所有消耗方都需要变更

https://i-blog.csdnimg.cn/img_convert/7e57a7613e9ce168caaefeaa9d193382.png
相互交叉调用:调用关系比较复杂
引入:ESB(企业服务总线)类似中介

https://i-blog.csdnimg.cn/img_convert/ee102f439799aec063ea1521501257da.png


[*]SOA:(Service-Oriented Architecture, 面向服务的架构)是一个组件模型它将应用程序的差别功能单位(称为服务)进行拆分,并通过这些服务之间定义精良的接口和契约联系起来。
[*]ESB:(Enterparise Servce Bu,企业服务总线),服务中介。重要是提供了一个服务 与 服务之间的交互并进行管理。


[*]

[*]ESB包罗的功能如:负载平衡,流量控制,加密处理,服务的监控,非常处理,监控诉急等等。




[*]分布式架构存在的题目:


[*]

[*]服务提供方一旦产生变更,所有消耗方都需要变更


微服务架构



[*]微服务架构是在SOA上做的升华,微服务架构夸大的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务体系会拆分为多个可以独立开辟、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
[*]微服务架构=80%的SOA服务架构思想+100%的组件化架构思想+80%的领域建模思想

https://i-blog.csdnimg.cn/img_convert/a22fd9d4efb056ede4ea4b3f566deab7.png
特点:


[*]服务实现组件化:开辟者可以自由选择开辟技能。也不需要协调其他团队
[*]服务之间交互一般利用REST API
[*]去中心化:每个微服务有本身私有的数据库长期化业务数据
[*]主动化摆设:把应用拆分成为一个一个独立的单个服务,方便主动化摆设(不依靠任意模块)、测试、运维

Dubbo是SOA时代的产物,SpringCloud是微服务时代的产物

微服务存在的题目:服务太多了,每个都访问本身的数据库,将来分布式事务的题目不太好办理

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 架构的演进