企业级应用系统设计--架构的选择-阿里云开发者社区

开发者社区> 开发与运维> 正文

企业级应用系统设计--架构的选择

简介: SOA和微服务的抉择
莎士比亚曾经说过“to be or not to be”,在当今这个企业级应用盛行的时代,我们当然选择toB。

既然选择了toB,那么toB的项目都有什么特点呢?接下来咱们看一下企业级应用的特点
(1)数据持久化
(2)海量数据的存储
(3)数据的并发访问
(4)大量的用户图形界面
(5)分级体系复杂、需要和其它应用集成
(6)数据概念不统一结构复杂
(7)复杂的业务逻辑

image.png

toB的产品面向的是企业,他主要围绕着的是企业的业务功能来进行的,众所周知,一个企业的流程是非常繁琐的,通常也会造成开发和产品之间的一些矛盾。

image.png

针对这些矛盾,这些错综复杂的业务关系,架构方面改怎么来选择呢?
传统的行业用的是SOA架构,当今主流的则是微服务,对于这两种架构,我们该如何抉择呢?
image.png

下面看一下这两个架构的对比:

概念

SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作
微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。
 微服务架构 = 80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

特点

SOA
1、面向服务的分布式计算。
2、服务间松散耦合。
3、支持服务的组装。
4、服务注册和自动发现。
5、以服务契约方式定义服务交互方式。

微服务
1、分布式服务组成的系统。
2、按照业务而不是技术来划分组织。
3、做有生命的产品而不是项目。
4、智能化服务端点与傻瓜式服务编排。
5、自动化运维。
6、系统容错。
7、服务快速化

“中心化”和“去中心化”

中心化:SOA主要以ESB为服务主线,每次请求都要通过ESB来进行路由,强调“中心化”服务框架,进行多次网络会话,容易造成“雪崩”效应。

image.png
去中心化:微服务主要在服务中交互,强调“去中心化”服务框架,网络开销少了一半,会避免“雪崩”效应
image.png

主要区别

image.png

现在市面上也推出了很多微服务的架构,Spring全家桶、Dubbox、Thrift等等,微服务其实就是SOA的升华,一个软件的升级!

云顶云(yundingyun.com)是国内首批专注于云计算与大数据服务的提供商,致力于“让云计算更简单”。做为阿里云五星授权服务中心,云顶云致力于为企业和政府提供方案咨询、架构设计、部署实施、系统定制、运维托管、技术培训等全方位“4S”级公有云、私有云定制化服务。

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

集结各类场景实战经验,助你开发运维畅行无忧

其他文章