我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SOA架构和微服务架构的区别是什么

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SOA架构和微服务架构的区别是什么

这篇文章主要讲解了“SOA架构和微服务架构的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SOA架构和微服务架构的区别是什么”吧!

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

首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。

1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在于操作系统进程中。各个服务之间 通过网络调用。

2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

微服务架构 = 美团即时物流的分布式系统架构设计80%的SOA服务架构思想 + 100%的组件化架构思想 + 80%的领域建模思想

ESB和微服务API网关。

1.ESB(企业服务总线):简单 来说 ESB 就是一根管道,用来连接各个服务节点。为了集 成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通;

SOA架构和微服务架构的区别是什么

2.API网关:API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。

API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。为什么微服务一定要有网关?这篇推荐你看下。

API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。

SOA架构和微服务架构的区别是什么
SOA架构和微服务架构的区别是什么

3.SOA架构特点

系统集成:站在系统的角度,解决企业系统间的通信问 题,把原先散乱、无规划的系统间的网状结构,梳理成 规整、可治理的系统间星形结构,这一步往往需要引入一些产品,比如 ESB、以及技术规范、服务管理规范;这一步解决的核心问题是【有序】

系统的服务化:站在功能的角度,把业务逻辑抽象成 可复用、可组装的服务,通过服务的编排实现业务的 快速再生,目的:把原先固有的业务功能转变为通用 的业务服务,实现业务逻辑的快速复用;这一步解决 的核心问题是【复用】

业务的服务化:站在企业的角度,把企业职能抽象成 可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提升企业的对外服务能力;“前面两步都是从技术层面来解决系统调用、系统功能复用的问题”。第三步,则是以业务驱动把一个业务单元封装成一项服务。这一步解决的核心问题是【高效】

微服务架构特点

1.通过服务实现组件化

  • 开发者不再需要协调其它服务部署对本服务的影响。

2.按业务能力来划分服务和开发团队

  • 开发者可以自由选择开发技术,提供 API 服务

3.去中心化

  • 每个微服务有自己私有的数据库持久化业务数据

  • 每个微服务只能访问自己的数据库,而不能访问其它服务的数据库

  • 某些业务场景下,需要在一个事务中更新多个数据库。这种情况也不能直接访问其它微服务的数据库,而是通过对于微服务进行操作。

  • 数据的去中心化,进一步降低了微服务之间的耦合度,不同服务可以采用不同的数据库技术(SQL、NoSQL等)。在复杂的业务场景下,如果包含多个微服务,通常在客户端或者中间层(网关)处理。

4.基础设施自动化(devops、自动化部署)

Java EE部署架构,通过展现层打包WARs,业务层划分到JARs最后部署为EAR一个大包,而微服务则打开了这个黑盒子,把应用拆分成为一个一个的单个服务,应用Docker技术,不依赖任何服务器和数据模型,是一个全栈应用,可以通过自动化方式独立部署。

每个服务运行在自己的进程中,通过轻量的通讯机制联系,经常是基于HTTP资源API,这些服务基于业务能力构建,能实现集中化管理(因为服务太多啦,不集中管理就无法DevOps啦)。

5.主要区别:

SOA架构和微服务架构的区别是什么

感谢各位的阅读,以上就是“SOA架构和微服务架构的区别是什么”的内容了,经过本文的学习后,相信大家对SOA架构和微服务架构的区别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SOA架构和微服务架构的区别是什么

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

SOA架构和微服务架构的区别是什么

这篇文章主要讲解了“SOA架构和微服务架构的区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“SOA架构和微服务架构的区别是什么”吧!SOA架构和微服务架构的区别首先SOA和微服务架构
2023-06-05

传统服务架构和微服务架构的区别

本篇内容主要讲解“传统服务架构和微服务架构的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“传统服务架构和微服务架构的区别”吧!一:传统服务架构一个系统由多个业务聚合而成,由多个java pa
2023-06-04

Java微服务架构的重构策略是什么

本篇内容介绍了“Java微服务架构的重构策略是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.将新功能实现为服务“挖坑法则”(The
2023-06-16

B/S与C/S架构的区别是什么

这期内容当中小编将会给大家带来有关B/S与C/S架构的区别是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1.系统架构包括哪些形式?C/S架构B/S架构2.什么是C/S架构?说白了就是客户端/服务端,
2023-06-22

JHipster微服务架构是怎样的

JHipster微服务架构是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。微服务架构 vs 一体化架构使用 JHipster 生成应用时,第一个问题就是让
2023-06-19

SOA架构的域控制器测试解决方案是什么

SOA架构的域控制器测试解决方案是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 随着汽车以太网技术成为汽车电子架构的中心,诊断、刷新、娱乐、智能驾驶等功能日
2023-06-03

软考系分和架构区别是什么?怎么选择?

软考是“全国计算机技术与软件专业技术资格(水平)考试”的简称,其有很多考试项目,而系分和架构都属于软考的高级考试项目。那么,软考系分和架构区别是什么?怎么选择?下面小编就来进行解答。
软考系分和架构区别是什么?怎么选择?
2024-09-02

微服务架构下的SQL拼接策略是什么

在微服务架构下,SQL拼接策略通常会根据具体的需求和情况来选择合适的方式。以下是一些常见的SQL拼接策略:使用ORM框架:ORM(对象关系映射)框架可以将数据库表和对象之间的映射关系封装起来,开发者可以通过操作对象来实现对数据库的操作,而不
微服务架构下的SQL拼接策略是什么
2024-04-29

Java Rabbitmq中四种集群架构的区别是什么

这篇文章给大家分享的是有关Java Rabbitmq中四种集群架构的区别是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Rabbitmq 四种集群架构1. 主备模式 2. 远程模式3. 镜像模式 4. 多活
2023-06-29

Go 协程在微服务架构中的作用是什么?

Go 协程在微服务架构中的作用在微服务架构中,Go 协程是一种有价值的工具,它允许并发的执行多个任务,而不需要管理线程。这可以显著提高应用程序的吞吐量,同时降低复杂性和资源消耗。什么是协程?协程是一种用户态线程,它允许在单个进程中同时
Go 协程在微服务架构中的作用是什么?
2024-05-21

Netdata中对微服务架构的监控策略和建议是什么

Netdata提供了一些针对微服务架构的监控策略和建议,包括:采用分布式监控:针对微服务架构的复杂性和分布性,建议采用分布式监控体系结构,将监控数据收集和处理分散在不同的节点中,以减轻单点故障和提高稳定性。监控关键指标:对于微服务架构中的每
Netdata中对微服务架构的监控策略和建议是什么
2024-06-03

云服务器的架构是什么样的

在云服务器的架构中,服务器硬件主要包括CPU、内存、硬盘、存储等核心硬件组件,这些硬件组件负责处理服务器运算任务和存储数据。同时,云服务器还需要配置网络服务,通过互联网连接到其他云服务提供商的计算和存储资源,实现数据的分发和存储。在云服务器的操作系统中,一般包括Windows操作系统、Linux操作系统、Unix操作系
2023-10-27

云服务器的架构是什么意思

云服务器架构主要包括以下几个方面:服务器架构云服务器的服务器架构主要包括三个部分:基础设施层、资源层和应用层。基础设施层包括服务器硬件和网络连接等硬件组件,资源层包括服务器所需的计算、存储和网络资源,应用层包括各种应用程序和服务。负载均衡云服务器可以通过负载均衡技术来平衡服务器的负载,确保服务器能够同时处理多个请求。负
2023-10-27

Golang技术在微服务架构中的局限性是什么?

go 语言在微服务架构中存在一些缺陷,包括:goroutine 泄漏可能导致内存消耗和性能问题。网络通信配置的复杂性限制了自定义和低级网络需求的灵活性。生态系统限制可能会限制对特定于域的工具和库的访问。某些场景中性能可能会受到影响,以换取语
Golang技术在微服务架构中的局限性是什么?
2024-05-10

无服务器架构的弊端是什么

无服务器架构的弊端包括以下几点:不适用于所有应用:无服务器架构不适用于所有类型的应用程序,特别是那些需要持续运行或对资源需求较高的应用。性能问题:由于服务器资源是由云服务提供商管理和分配,因此无法控制服务器的配置和性能。这可能会导致性能问题
无服务器架构的弊端是什么
2024-04-30

阿里云服务器的架构是什么

简介阿里云服务器是一种云计算服务,为用户提供弹性的计算资源和可靠的数据存储。阿里云服务器的架构是指其硬件、网络和软件等组成部分的组织方式和配置方式。了解阿里云服务器的架构对于用户来说非常重要,可以帮助他们更好地理解服务器的工作原理,选择适合自己需求的服务器配置。详细说明1.硬件架构阿里云服务器的硬件架构包括服务器硬件设
阿里云服务器的架构是什么
2024-01-14

云服务器部署架构是什么

云服务器部署架构是指在云计算环境下,将应用程序和服务部署在云服务器上的结构和配置。它包括以下主要组件和层次:1. 虚拟化层:云服务器部署架构通常基于虚拟化技术,通过将物理服务器划分为多个虚拟服务器实例,实现资源的共享和隔离。2. 负载均衡层
2023-08-28

ADO.NET架构和ADO的差异是什么

这篇文章主要介绍“ADO.NET架构和ADO的差异是什么”,在日常操作中,相信很多人在ADO.NET架构和ADO的差异是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO.NET架构和ADO的差异是什么
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录