SOA和微服务之间的区别(应用和数据的垂直拆分水平拆分)

目录

引出问题

重要概念

垂直拆分

水平拆分

同步分层架构

异步分层架构

SOA是什么?

微服务是什么?

数据库拆分

写在最后


引出问题

互联网发展迅猛,互联网系统也由原来的单机服务逐步的演化为分布式服务,同样,服务架构也由原来的单体架构逐步演化为如今的分布式架构,由此衍生出许多架构类型。今天就谈谈微服务架构和传统的SOA架构到底有什么区别。

近年来微服务火遍中小型企业,似乎看起来SOA已经成为将要过时的技术,事实是真的这样子吗?

重要概念

当单体架构满足不了日益增长的客户需求时,就要将数据库和应用程序等拆分开,也就是将一个应用程序部署到多台服务器上。通常服务和数据的拆分,分成垂直拆分水平拆分

同步分层的架构和异步分层架构只差了一个消息队列(MQ),异步操作虽然可以增强用户的体验,但是其弱一致性会带来许多数据不一致的问题(这个问题在后续博文中会做出解释和解决方案,关注我哟~)。

垂直拆分

对业务的不同进行分类,不同的业务划分到不同的应用和数据库中。这种拆分往往是根据系统的改造,将原来的功能模块按照更加细粒度的拆分成多个弱耦合的服务。

水平拆分

数据库层面的水平拆分,就是将一个数据表中的数据按照某种规则分化到不同的数据库中,也就是分库分表

应用层面的水平拆分,最经典的就是将整个应用分层。数据库访问层和业务逻辑层拆分、网关层和业务逻辑层拆分等等。

同步分层架构

异步分层架构

SOA是什么?

(铺垫了这么多,终于到正题了)

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

SOA其实是按照业务进行垂直方向的拆分的,每个服务其实还是单机,对ESB依赖严重。

微服务是什么?

微服务的终极目的就是为了项目的快速迭代持续交付

微服务架构既进行垂直拆分,又进行了水平拆分

数据库拆分

数据库拆分也分为垂直拆分和水平拆分。

垂直拆分比较容易理解,就是按照业务进行拆分;水平拆分就比较难了,其实一般的能不用水平拆分就不用水平拆分。

这里我推荐一个专门用来做分布式的数据库,TiDB。(在后续博文中会介绍它的使用和应用场景,关注我哟~)

写在最后

写文章目的就是交流分享,如有问题还请指正,本人邮箱784482906@qq.com

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秃了也弱了。

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

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

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

打赏作者

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

抵扣说明:

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

余额充值