SOA和微服务之间的区别(应用和数据的垂直拆分水平拆分)
目录
引出问题
重要概念
垂直拆分
水平拆分
同步分层架构
异步分层架构
SOA是什么?
微服务是什么?
数据库拆分
写在最后
引出问题
互联网发展迅猛,互联网系统也由原来的单机服务逐步的演化为分布式服务,同样,服务架构也由原来的单体架构逐步演化为如今的分布式架构,由此衍生出许多架构类型。今天就谈谈微服务架构和传统的SOA架构到底有什么区别。
近年来微服务火遍中小型企业,似乎看起来SOA已经成为将要过时的技术,事实是真的这样子吗?
重要概念
当单体架构满足不了日益增长的客户需求时,就要将数据库和应用程序等拆分开,也就是将一个应用程序部署到多台服务器上。通常服务和数据的拆分,分成垂直拆分和水平拆分。
同步分层的架构和异步分层架构只差了一个消息队列(MQ),异步操作虽然可以增强用户的体验,但是其弱一致性会带来许多数据不一致的问题(这个问题在后续博文中会做出解释和解决方案,关注我哟~)。
垂直拆分
对业务的不同进行分类,不同的业务划分到不同的应用和数据库中。这种拆分往往是根据系统的改造,将原来的功能模块按照更加细粒度的拆分成多个弱耦合的服务。
水平拆分
数据库层面的水平拆分,就是将一个数据表中的数据按照某种规则分化到不同的数据库中,也就是分库分表。
应用层面的水平拆分,最经典的就是将整个应用分层。数据库访问层和业务逻辑层拆分、网关层和业务逻辑层拆分等等。
同步分层架构
异步分层架构
SOA是什么?
(铺垫了这么多,终于到正题了)
面向服务的架构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。(这是百度的解释)
SOA其实是按照业务进行垂直方向的拆分的,每个服务其实还是单机,对ESB依赖严重。
微服务是什么?
微服务的终极目的就是为了项目的快速迭代和持续交付。
微服务架构既进行垂直拆分,又进行了水平拆分。
数据库拆分
数据库拆分也分为垂直拆分和水平拆分。
垂直拆分比较容易理解,就是按照业务进行拆分;水平拆分就比较难了,其实一般的能不用水平拆分就不用水平拆分。
这里我推荐一个专门用来做分布式的数据库,TiDB。(在后续博文中会介绍它的使用和应用场景,关注我哟~)
写在最后
写文章目的就是交流分享,如有问题还请指正,本人邮箱784482906@qq.com
SOA和微服务之间的区别(应用和数据的垂直拆分水平拆分)相关推荐
- SOA和微服务之间的区别
近几年,我们有很多文章对SOA和微服务之间的不同点和相似点进行了分析.有些人认为SOA有很多地方是值得微服务学习的,而有些人则认为区别对待微服务和SOA会更好.而Neal Ford认为,将单体迁移到面 ...
- 阿里P8架构师谈:Restful、SOAP、RPC、SOA、微服务之间的区别
内容大纲: 1.介绍Restful.SOAP.RPC.SOA以及微服务 2.重点谈谈SOA与微服务的区别 3.以及为什么要使用微服务架构 什么是Restful Restful是一种架构设计风格,提供了 ...
- Restful、SOAP、RPC、SOA、微服务之间的区别
一.介绍Restful.SOAP.RPC.SOA以及微服务 1.1.什么是Restful? Restful是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或 ...
- 单体、集群、分布式、SOA、微服务之间的联系与区别
单体.分层架构.集群.分布式.SOA.微服务之间有什么联系和区别? 1.概念提出时间 单体 : 60.70年代 分层 : 20世纪80年代 集群: 1990年 分布式:1994年 SOA: 1996年 ...
- SOA和微服务架构的区别
SOA和微服务架构的区别? 1 条评论 分享 默认排序按时间排序 10 个回答 203赞同 反对,不会显示你的姓名 知乎用户 大型电信行业SOA实施经验,SOA规划咨询,- 203 人赞同 谢多人邀请 ...
- SOA和微服务架构的区别?
知乎用户 289 人赞同了该回答 谢多人邀请,其实前面几位的回答已经差不多了,在这里仅谈下自己的简单总结. 微服务架构强调的第一个重点就是业务系统需要彻底的组件化和服务化,原有的单个业务系统会拆分为多 ...
- 系统架构演变:SOA、微服务架构的区别和联系
1.系统架构演变 随着互联网的发展,网站应用的规模不断扩大.需求的激增,带来的是技术上的压力.系统架构也因此也不断的演进.升级.迭代.从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服 ...
- 微服务架构以及SOA和微服务架构的区别
微服务架构模式(Microservice Architect Pattern).近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将单一应用程序划分成 ...
- SOA与微服务的区别
1.SOA 全称:Service Oriented Architecture(面向服务架构)是一种架构设计模式,主要是以服务总线的形式对外提供服务, 可以将它理解为一个架构模型或者一种设计方法,而并不 ...
最新文章
- 3.1 神经网络概览-深度学习-Stanford吴恩达教授
- MYSQL: DML/DDL/DCL
- 云计算机玩大型游戏,云游戏实测点评:大部分都可以顺畅玩耍
- boost::asio::ip::tcp实现阻塞tcp echo客户端的程序
- 在workflow中,无法为实例 ID“...”传递接口类型“...”上的事件“...” 问题的解决方法。...
- 脚本语言和编程语言的区别
- 现在学Java有前途吗?Java岗位饱和了吗?
- Cannot resolve field [product], input field list:[user, EXPR$0]
- matlab多径信道模型,基于matlab的无线多径信道建模与仿真分析
- 模拟电路--可编程数字稳压电源的设计
- (转)淘淘商城系列——前台系统工程搭建
- nginx系列11:负载均衡哈希算法ip_hash与hash模块
- 智汇华云 | 异步?NO! 同步?NO! 华云数据新专利解决云平台容灾难题
- Unity中的Compute Shader
- 贝叶斯信念网络简介以及算法整理笔记
- 技术问答网站与论坛为什么半死不活
- html项目答辩策划书,答辩会策划书范文.doc
- 解决‘parent.relativePath‘ of POM com.myfun:taskWeb:0.0.1-SNAPSHOT (D:\project wo
- setsockopt()函数和getsockopt()函数
- linux下通过终端打开文件夹
热门文章
- 在springboot中使用mybatis generate自动生成实体类和mapper
- 文件名不能为null_色即是空,空即是色---java有关null的几件小事
- async js 返回值_图文讲解浏览器执行JS过程中的微任务和宏任务
- 什么是php数组,php 数组写法是什么
- php redbean update,redbeanphp和表前缀
- pacemaker集群管理相关命令
- springboot 接受数组对象_SpringBoot+RabbitMQ 方式收发消息
- 虚拟机中web服务器的搭建,虚拟机下搭建web服务器
- php jquery grid,jQuery Grid
- 子之错父之过什么意思_胎教是什么意思?胎教有何意义?