业务服务架构演进

集群:一个业务模块部署在多台服务器上。(很多人一起干一件事)

分布式:一个大业务模块,拆分多个小的业务模块,分别部署在不同的机器上。(很多人一起干多件小事,合起来为一件大事)
集群和分布式的使用保证了
系统的高性能、高可用、可伸缩、高可扩展性

架构演进过程

在这里插入图片描述

单体架构

所有业务实现一股脑放在一块。

在这里插入图片描述

优点:

  • 简单,开发部署方便,适合小型项目

缺点:

  • 项目启动慢
  • 可靠性差 :一个小功能坏了,其他的功能都用不了
  • 可伸缩性差
  • 扩展性和可维护性差
  • 性能低

垂直架构

将单体架构的多个模块拆分成多个独立项目。拆分出的多个独立项目之间不进行任何交互。
在这里插入图片描述

缺点:

  • 重复功能太多
  • 一旦需要修改,涉及到的重复模块每个都要修改

分布式架构

在垂直架构的基础上,将公共业务模块抽取出来,作为独立服务,供其他调用者消费,以实现服务的共享和重用。

RPC:Remote Produce Call 远程过程调用。
在这里插入图片描述

缺点:

服务提供方一旦产生变更,所有消费方都需要变更

SOA架构

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

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

微服务架构

业务需要彻底的组件化和服务化

是在SOA上做的升华,原有的单个业务系统拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

微服务架构=80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想。
在这里插入图片描述

特点:

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

缺点:

  • 服务太多,每个都访问自己的数据库,分布式事务、跨服务数据一致性问题。
  • 服务之间调用耗时
  • 级联失败(雪崩问题)
    为了实现微服务之间的调用和保证服务健壮性,也就引出了:
    Nacos、Eureka、OpenFeign、服务保护、分布式事务等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值