面向服务的架构不太关心如何应用程序进行模块化构建,更多的是关于如何通过分布式、单独维护和部署的软件组件的集成来组成应用程序。这些通过技术和标准来实现,通过技术和标准使得组件能够更容易地通过网络进行通信和协作。

SOA架构中有两个主要角色:服务提供者(Provider)和服务使用者(Consumer)。而软件代理则可以扮演这两个角色。 该consumer层是用户与SOA交互的点,和provider层则由SOA架构内的所有服务所组成。

SOA首先在90年代中期得名, 当时一家名为Gartner Group的公司认识到了这个软件架构的新趋势,并在全球推广。 通过这样做,他们设法大大加快了这种架构模式的采用和进一步发展。然而,使用分布式服务作为软件体系结构的最早记录可追溯到二十世纪80年代初。

三、微服务架构

微服务架构在某种程度上是面向服务的架构SOA继续发展的产物。基本上,这种架构类型时开发软件,网络和移动应用程序作为独立服务套件(又称微服务)的一种特殊方式。这些服务的创建仅限于一个特定的业务功能,如用户管理、用户角色、电子商务、搜索引擎、社交媒体登录等。此外,他们是完全独立的,也就是说它们可以写入不同的编程语言并使用不同的数据库。集中式服务管理几乎不存在,微服务使用轻量级HTTP、REST或 Thrift API进行通信。乍一看, 微服务架构似乎谈论的是与SOA相同的事情。不过,如果引用微软服务领域的先驱Martin Flower的话,他曾经说过,“我们应该把SOA看作微服务的超集”。

四、SOA VS MicroServices

SOA 微服务架构
应用程序服务的可重用性的最大化 专注于解耦
系统性的改变需要修改整体 系统性的改变是创建一个新的服务
DevOps和持续交付正在变得流行,但还不是主流 强烈关注DevOps和持续交付
专注于业务功能重用 更重视“上下文边界”的概念
通信使用企业服务总线ESB 对于通信而言,使用较少精细和简单的消息系统

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

支持多种消息协议使用轻量级协议,例如HTTP,REST或Thrift API对部署到它的所有服务使用通用平台应用程序服务器不是真的被使用,通常使用云平台容器(如Docker)的使用不太受欢迎容器在微服务方面效果很好SOA服务共享数据存储每个微服务可以有一个独立的数据存储共同的治理和标准轻松的治理,更加关注团队协作和选择自由

下面进一步解释上面所述的不同之处:

1、开发方面

在这两种体系结构中,可以使用不同的编程语言和工具开发服务,从而将技术多样性带入开发团队。开发可以在多个团队中组织,但是在SOA中,每个团队都需要了解常见的通信机制。另一方面,使用微服务,服务可以独立于其他服务运行和部署。因此,频繁部署新版本的微服务或独立扩展服务会更容易。

2、上下文边界

SOA鼓励组件的共享,而微服务尝试通过上下文边界来最小化共享。上下文边界是指以最小的依赖关系将组件及其数据解耦为单个单元。由于SOA依靠多个服务来完成业务请求,构建在SOA上的系统可能比微服务更慢。

3、通信

在SOA中,ESB可能成为影响整个系统的单一故障点。由于每个服务都通过ESB进行通信,如果其中一个服务变慢,可能会阻塞ESB并请求该服务。另一方面,微服务在容错方面要好得多。例如,如果一个微服务存在内存错误,那么只有该服务会受到影响,其它的为夫将继续顶起处理请求。

4、互操作性

SOA通过消息中间件组件促进了多种异构协议的使用。微服务试图通过减少集成选择的数量来简化架构模式。因此,如果您想要在异构环境中使用不同协议来集成多个系统,需需要考虑SOA。如果您的所有服务都可以通过相同的远程访问协议访问,那么微服务对您来说是一个更好地选择。

5、大小size

微服务架构中的前缀“微”是指内部组件的粒度,意味着它们必须比SOA架构的服务往往要小得多。微服务中的服务组件通常有一个单一的目的,他们做得很好。另一方面,在SOA服务中通​​常包含更多的业务功能,并且通常将它们实现为完整的子系统。

五、总结

微服务与SOA架构,java架构师视频九个阶段百度云相关推荐

  1. Java程序员必经的实践之路:微服务与SOA架构

    而另一方面,微服务推崇执行的标准(例如HTTP)却是人们广泛了解并共同使用的.我们可以通过选择合适的语言或工具来构建某个组件微服务.SOA与微服务还有一个更大的区别:领域模型.在基于微服务的软件中,每 ...

  2. 【微服务架构】微服务与SOA架构(3)

    前文: [微服务架构]微服务与SOA架构(1) [微服务架构]微服务与SOA架构(2) 比较架构特性 组件(component)是软件中的一个单位,具有定义良好的接口.定义良好的角色/责任集合.组件是 ...

  3. 微服务和SOA架构的区别

    经常会有同学问,微服务和SOA架构有什么区别.这个区别一定要从架构的发展过程来了解.这两种架构模式,其实本质上应该是在分布式架构这条时间线上,基于服务化思想的不断完善,以及基础设施的逐步成熟之下的一种 ...

  4. Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲

    Java生鲜电商平台-SpringCloud微服务开发中的数据架构设计实战精讲 Java生鲜电商平台:   微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性, ...

  5. 微服务开发中的数据架构设计

    前言 微服务是当前非常流行的技术框架,通过服务的小型化.原子化以及分布式架构的弹性伸缩和高可用性,可以实现业务之间的松耦合.业务的灵活调整组合以及系统的高可用性.为业务创新和业务持续提供了一个良好的基 ...

  6. 基于微服务的电商系统架构

    分层 微服务设计 微服务微内核 基于微服务的电商系统架构 转载于:https://www.cnblogs.com/davidwang456/articles/9221369.html

  7. 微服务开发中的数据架构设计 1

    GitChat 作者:陈伟荣 原文:微服务开发中的数据架构设计 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 前言 微服务是当前非常流行的技术框架,通过服务的小 ...

  8. 15 | 边界:微服务的各种边界在架构演进中的作用

    边界:微服务的各种边界在架构演进中的作用 Reference DDD实战

  9. SOA详解微服务与SOA的关系

    单体应用 单体应用优化 SOA 面向服务的架构 SOA描述 SOA维基百科翻译 面向服务的体系结构(SOA)是一个式的软件设计风格,是通过应用组件的方式向其他组件提供服务,基于网络的的一个通讯协议.S ...

最新文章

  1. Z-Stack - Modification of Zigbee Device Object for better network access management
  2. 在Init之前究竟执行了什么?
  3. 网易云信自研大规模传输网核心系统架构剖析
  4. kaggle的图像数据集直接下载到google drive
  5. Kettle 学习导航帖整理
  6. 关于java.util.ConcurrentModificationException和remove倒数第二个元素
  7. 考研复习安排——第一阶段末
  8. 记一次 JAVA 的内存泄露分析
  9. python机器学习库sklearn——BIRCH聚类
  10. linux:文件及目录管理
  11. oracle服务器结构01
  12. QQ空间自动发广告说说?可能是激活工具附带的独狼Rootkit!
  13. 基本计算机编程术语,计算机编程术语,你记住了吗?
  14. UMLChina公众号文章精选(20220918更新精选)
  15. 京东、腾讯历经最难Q1
  16. SVN报错:can't open file db/txn-current-lock:permission denied 解决方法
  17. USB转TTL串口板使用问题
  18. 灰度量化、图像分辨率、人工神经网络、BP网络——神经网络和计算机视觉基础总结
  19. 超实用后台UI模板有这些就够了!(三)
  20. 信息搜集-敏感信息收集

热门文章

  1. 全系列列慧荣主控U盘SSD固态硬盘量产开卡工具
  2. CryENGINE3初探Entities (二)----使用C++创建自定义Entity(一)
  3. 这款神奇的云端电脑可让你少装十几个软件
  4. 精选收集50个计算机热门视频教程免费下载[原创]
  5. Navicat Premium操作Mongodb
  6. Lesson 47 A cup of coffee 一杯咖啡
  7. POI操作WORD分页
  8. shell-脚本集合
  9. htonl函数 c语言,c – 理解htonl()和ntohl()
  10. 华为云桌面,开启云上高效办公之旅!