三分钟了解服务架构演进及优缺点

单一应用架构

一般用于定制系统,需求明确,不会迭代,开发快

优点:项目易于管理,部署简单

缺点:测试成本高、可伸缩性差、可靠性差、迭代困难、跨语言程度差、团队协作难

解释:ABC代表三个模块,A->B->C代表调用关系

  • 测试成本高:每个模块都需要测试,所有关联模块有需要测试

我们要测试除了A、B、C三个模块外,还需要测试A->B、B->C、A->B->C

  • 可伸缩性差:我们在AB直接插一个D,那么我们需要改动A和B代码,才能变成A->B->C->D

  • 可靠性差:如果C的功能出现问题,并不一定是C的代码错误,也有可能是AB引起的

  • 迭代困难:改动部分代码,需要重新测试大量功能。

  • 跨语言程度差:只用一种语言

  • 团队协作难:模块的耦合高,代码整合调试困难

RPC架构

远程调用过程

优点:应用直接调用服务,服务之间是隔离的

缺点:服务过多时,管理成本高昂。服务治理,服务注册、发现,服务容错,服务跟踪,服务网关,IP暴露等

解释:ABC还是代表是哪个模块,有一个远程的服务来调用ABC

  • 应用直接调用服务,服务之间是隔离的:ABC没有直接的关系,而是通过远程的服务来调用ABC

  • 服务治理,服务注册、发现,服务容错,服务跟踪,服务网关,IP暴露等都是因为服务隔离产生的。

SOA架构面向服务架构

在RPC架构的基础上加了一个ESB,应用去调用ESB,ESB去调用服务

ESB:企业服务总线,服务中介

微服务架构

对比与SOA架构,将ESB换成了注册中心,代表技术:SpringCloud、Dubbo

常见的架构风格:

  • C/S:比如QQ

  • 基于组件模型的架构:比如EJB

  • 分层架构:典型就是MVC架构

  • 面向服务架构:SOA和微服务

优点:与单一应用架构相对比

  • 测试容易

  • 可伸缩性强

  • 可靠性强

  • 跨语言程度会更加灵活

  • 团队协作容易

  • 系统迭代容易

缺点:

  • 运维成本过高,部署服务器数量高

  • 接口兼容多版本,可能一个系统的不同功能具有不同的版本

  • 分布式系统的复杂性,通信成本提升,系统复杂性提升

  • 分布式事务,分布式系统会引出分布式事务的出现,现在有很多的分布式事务解决方案,尽量不使用分布式事务去解决,会影响并发量或性能

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗头实习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值