首页 > 其他分享 >软件系统的架构演进以及集群和分布式

软件系统的架构演进以及集群和分布式

时间:2024-07-11 12:18:45浏览次数:10  
标签:服务 演进 -- 单体 模块 架构 分布式 软件系统

  一、单体架构:

  将四个模块ABCD放到一个项目中,功能模块不进行拆分,项目整体搭建集群叫做多机单体架构,项目不搭建集群叫单机单体架构。

                              

 


  单体架构的优点:
简单:开发部署都很方便,小型项目首选


  单体架构的缺点:

  随着业务增长,时间推移,数量量越来越大,用户越来越多,单体架构会存在问题:
-- 项目启动慢: ABCDEF 很多项目导致项目启动慢。
-- 可靠性差 : D模块出现问题,会影响ABC, D一旦挂了,其他模块也不能用了。

-- 可伸缩性差:
-- 扩展性和可维护性差:
-- 性能低:

 

  二、垂直架构
概念:某一个领域细分 称为垂直,像早期淘宝什么都卖,随后出现了很多垂直的网站,如京东 唯品会,聚美优品 ,电商方面的垂直。

垂直架构是指将单体架构中的多个模块拆分为多个独立的项目。形成多个独立的单体架构。

  如下图:项目1 部署ABE,项目2 部署CDE

                                 

 

(1)垂直结构解决了单体架构 中存在的问题:

- 项目启动慢 :项目拆分,启动2个项目;

- 可靠性差 : 模块D挂了,AB不受影响;

- 可伸缩性差:如CD访问人数多,那么CD搭建集群;

- 扩展性和可维护性差:CD 模块添加E,AB不受影响;

- 性能低

(2)垂直架构存在的问题: 重复功能太多

如:公共组件,如用户管理,假如AB模块是电商订单项目, 要获取用户信息(E), CD模块是 购物车模块,也要获取用户信息(E),用户管理模块E,都需要用,都需要写。


  三、分布式架构


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

如下图:AB,CD 是服务消费者,服务提供者是E。

                                    

 


(1)分布式架构解决垂直架构存在的问题:
-- 重复功能太多: 已解决,但是有很多服务提供者,服务交叉调用会存在问题。

(2)分布式架构存在的问题:服务统一管理;
​ -- 服务提供方- 一旦产生变更,所有消费方都需要变更。

如:网络调用的三要素为:协议,IP,端口。如果服务提供者 E的IP发生变化 ,AB和CD需要手动修改调用。


  四、面向服务的架构(SOA)

 

SOA: (Service- Oriented Architecture,面向服务的架构):是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和契约联系起来。

ESB: (Enterparise Servce Bus):企业服务总线,服务中介。主要是提供了一一个服
务于服务之间的交互。ESB包含的功能如:负载均衡,流量控制,加密处理,服务
的监控,异常处理,监控告急等等。

如下图:模块和服务之间通过ESB通信

                                      

 


(1)面向服务架构解决了分布式架构存在的问题:(服务之间的调用通过ESB管理)
​ --服务提供方- -旦产生变更,所有消费方都需要变更:服务之间不再直接调用,而是通过ESB通信。

 

  五、微服务架构:
微服务架构和面向服务的架构基本是一回事。

微服务架构是在SOA上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

微服务架构= 80%的SOA服务架构思想+ 100%的组件化架构思想+ 80%的领域建模思想

如下图:ABC三个服务,ABC访问自己的数据库,他们相互之间是独立的,A不能访问B的数据库,客户端通过统一组件-网关访问数据库。

                                                      

 

  特点:

    -- 服务实现组件化,开发者可以自由选择开发技术,也不需要协调其他团队;
    -- 服务之间交互一般使用REST API
    -- 去中心化,每个微服务有自己私有的数据库持久化业务数据
    -- 自动化部署:把应用拆分成为一个一个独立的单个服务,方便自动化部署、测试、运维

 

  六、集群和分布式


  在一般项目中,集群和分布式并不是分开的,集群和分布式是并存的。

  集群:一个业务模块,部署在多台服务器上。通俗解释就是:很多“人”一起,干一样的事。

  如:部署三个单体项目, 通过Nginx 实现负载均衡,请求转发。

  分布式:一个大的业务系统,拆分成小的业务模块,分别部署在不同的机器上。通俗解释就是:很多"人”一起,干不一样的事。这些不一样的事, 合起来是一件大事。

标签:服务,演进,--,单体,模块,架构,分布式,软件系统
From: https://www.cnblogs.com/kongsq/p/18295908

相关文章

  • 面经梳理-分布式
    题目请简述一下CAP理论,我们常见的中间件分别侧重点是什么?简述一下BASE理论?什么是强一致性,弱一致性,最终一致性CAP理论CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partitiontolerance(分区容错性)这三个基本需求,最多只能同时满足其中的2......
  • java Redission 分布式锁的使用
    在微服务的场景下,一个应用会部署多个实例,在一些业务场景中,需要保证同一时间多个线程只能有一个线程操作资源,分布式锁可以实现这一需求。JAVA中,Redission分布式锁是基于Redis实现的分布式锁,使用简单,只需要关注业务场景和使用到的接口即可。引入依赖<!--https://mvnreposito......
  • 服务网格新篇章:Eureka与分布式服务网格的协同共舞
    服务网格新篇章:Eureka与分布式服务网格的协同共舞引言在微服务架构的浪潮中,服务网格(ServiceMesh)技术以其微服务间通信的精细化控制而备受瞩目。Eureka作为Netflix开源的服务发现框架,虽然本身不直接提供服务网格功能,但可以与服务网格技术如Istio、Linkerd等无缝集成,实现服......
  • 会话无界:Eureka中服务的分布式会话管理策略
    会话无界:Eureka中服务的分布式会话管理策略引言在微服务架构中,随着服务数量的增加,传统的会话管理方法面临着诸多挑战,如数据一致性、服务隔离和水平扩展等。Eureka作为Netflix开源的服务发现框架,虽然本身不直接提供会话管理功能,但可以与其他技术结合使用,实现服务的分布式会......
  • Ceph--分布式存储
    目录一、存储基础1.单机存储设备2.单机存储的问题3.商业存储解决方案4.分布式存储(软件定义的存储SDS)5.分布式存储的类型二、Ceph概述1.Ceph简介2.Ceph优势3.Ceph架构4.Ceph核心组件5.OSD存储引擎6.Ceph数据的存储过程7.Ceph版本发行生命周期8.Ceph集......
  • 3大主流分布式事务框架详解(图文总结)
    1简要介绍随着微服务架构的不断发展,分布式系统逐渐普及到后端领域的每一个角落。在分布式系统中,跨多个服务的数据一致性一直是一个重大挑战,为解决这一挑战,分布式事务应运而生。作者在之前的文章《五种分布式事务解决方案》和《4大主流分布式算法介绍》中,详细介绍了分布式事物......
  • 顶会FAST24最佳论文|阿里云块存储架构演进的得与失-5.其他话题分享
    4.1可用性威胁与解决方案挑战1:BlockServer故障影响众多VD问题描述:单个BlockServer的故障可能会影响到多个虚拟磁盘(VDs)的正常运作,这是由于传统架构中BlockServer承担了过多的职责,其稳定性直接关系到大量VD的服务连续性。解决方案:联合BlockManager(双层控制节点)。通过引......
  • 顶会FAST24最佳论文|阿里云块存储架构演进的得与失-3.EBS架构演进历程
    上图展示了阿里云EBS(ElasticBlockStorage)服务自2012年以来的发展时间线,概括了其三代产品的关键特性、技术集成及硬件升级的历程。2012-EBS1发布:设计特点:EBS1标志着阿里云开始采用计算与存储分离的设计哲学。它通过直接映射虚拟磁盘(VDs)为后端存储服务器上的64MiB......
  • 顶会FAST24最佳论文|阿里云块存储架构演进的得与失-4.EBS不同架构性能提升思路
    3.1平均延迟与长尾延迟虚拟磁盘(VD)的延迟是由其底层架构决定的,具体而言,取决于请求所经历的路径。以EBS2为例,VD的延迟受制于两跳网络(从BlockClient到BlockServer,再至ChunkServer)的延迟、软件栈处理时间(即BlockClient、BlockServer和Pangu组件的处理时间)以及SSD的I/O操作时间。......
  • 守护服务之门:Eureka中分布式认证与授权的实现策略
    守护服务之门:Eureka中分布式认证与授权的实现策略引言在微服务架构中,服务间的通信安全至关重要。Eureka作为Netflix开源的服务发现框架,虽然本身提供了服务注册与发现的功能,但并不直接提供认证与授权机制。为了实现服务的分布式认证和授权,我们需要结合其他安全框架和策略。......