避繁就简-架构的演进

架构的演进


单体架构


所有的功能都集中在一个应用中,统一开发,统一部署,all in one。

优点
  • 成本低

  • 周期短

  • 维护方便

缺点
  • 性能低,并发量低

  • 单点容错率低

  • 随着需求的迭代,项目越来越臃肿

  • 无法对不同模块功能进行针对性的优化

  • 无法对不同的模块进行针对性的水平拓展,有的模块并发量高,有的模块并发量低,单体应用只能整体进行扩展

垂直应用架构


把单体应用拆分成互不相干几个应用,比如一个电商系统可以拆分成:电商系统、后台管理系统等

优点
  • 可针对不同的系统功能进行针对性的优化

  • 方便水平拓展,并发量高的模块多副本集群化部署

  • 容错,单一系统出错不影响其他的系统

缺点
  • 重复开发

  • 服务之间交互复杂

分布式架构


当垂直应用越来越多,重复的业务代码将越来越多。分布式架构就是把一个服务拆分成控制层服务和服务层服务,控制层只需要处理和业务的交互,业务逻辑都是调用服务层来实现。

优点
  • 系统模块重用度高

  • 开发和发布速度快

  • 系统扩展性高

缺点
  • 分布式事务复杂

  • 系统吞吐量变大,但是响应时间变长

  • 服务调度困难复杂

SOA架构


当拆分的服务越来越多,分布式架构中各服务间的依赖关系越来越复杂,某一个服务的变更可能导致多个依赖服务的不可用。SOA架构就是引入了一个ESB(企业服务总线),让ESB统一做消息的转换和路由工作,让不同的服务互联互通。

优点
  • 标准网络协议

  • 减少服务间的依赖

微服务架构


微服务是SOA一个离经叛道的继任者。

微服务就是将以上架构中的服务分隔成更小细粒度的服务,服务组件化。

优点
  • 技术选型灵活,不同的服务可根据具体的需求技术选型

  • 可扩展性高

缺点
  • 部署成本高

  • 服务间通信成本高,对网络稳定性要求高

SOA架构 VS 微服务架构


SOA

微服务

服务粒度

粗粒度

细粒度

业务划分方式

水平多层

纵向业务划分

部署方式

整体部署

独立部署

通信方式

使用重量级通信方式,ESB充当服务之间通信的角色

使用轻量级通信方式,如HTTP RESTful

服务交付

交付慢

交付快

应用场景

庞大、复杂、异构的企业级系统

快速、轻量级、基于 Web 的互联网系统

概念


  • 集群:很多一样的服务,干同样的事。

  • 分布式:不一样的服务,合起来干一件事。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值