微服务与SOA架构

系统架构师-面向服务架构(SOA)全解 按教材的分发,ESB是企业服务总线模式,而UDDI就是服务注册表模式,至于通信及通信格式这些问题,可以采用SOPA+WSDL的方案,这些都不是必须的,都可以根据实际情况调整。顾名思义,它首先是一门语言,这个语言就是用来描述web服务和通信,其实就是很常见的get/post等等方法,http或者https,端口号是多少。交换信息的简单的协议,是一个基于XML的协议。看图说故事,右边的微服务架构,第一眼就看到少了ESB,SOA把系统分为服务,微服务把系统分为微服务,所以微服务=SOA?3. 微服务更倾向于。 阅读详情

一、前言

面向服务架构(SOA)已经存在很多年了,这是一种用于设计软件的伟大原则。在SOA中,所有组件都是独立自主的,并能为其它组件提供服务。要替换掉系统中的某些部分而不对整个系统造成较大的影响,本是个难题,然而只要维护好系统各模块之间的低耦合,该难题便能迎刃而解。大体上,SOA与微服务架构师非常相像的。微服务是细粒度的SOA组件。换句话说,某单个SOA组件可以被拆分成多个微服务,而这些微服务通过分工协作,可以提供与原SOA组件相同级别的功能,如下图所示

微服务是细粒度的SOA组件,他们是关注点更窄的轻量级服务。微服务与SOA之间的另一个不同之处是服务互联和编写服务时所使用的技术。J2EE是一个遵循企业级标准的用于编写SOA架构的技术栈。java命名与目录接口(JNDI)、企业级Javabean(EJB)以及企业服务总线(ESB)都是SOA应用赖以构建和维护的生态土壤。即便ESB是标准, 在2005年之后毕业的工程师却鲜有听说过ESB的,至于用过ESB的那就更少了。而当代的,例如Rubyon Rails这样的框架甚至不会去考虑如此复杂的软件部件。

而另一方面,微服务推崇执行的标准(例如HTTP)却是人们广泛了解并共同使用的。我们可以通过选择合适的语言或工具来构建某个组件微服务。SOA与微服务还有一个更大的区别:领域模型。在基于微服务的软件中,每个微服务应该在本地存储自身管理的数据,并在领域模型分别隔离到单个服务中。而在面向SOA的软件中,数据往往存储在单个大型的数据库中,服务之间会共享领域模型。

二、面向服务的架构SOA

面向服务的架构是一种软件体系结构,应用程序的不同组件通过网络上的通信协议向其他组件提供服务。通信可以是简单的数据传递,也可以是两个或者多个服务彼此协调连接。这些独特的服务之星一些小功能,例如验证付款、创建用户账户或者提供社交登录等。

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

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对于通信而言,使用较少精细和简单的消息系统
支持多种消息协议使用轻量级协议,例如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更适合需要与许多其他应用程序集成的大型复杂企业应用程序环境。也就是说小型应用程序不适合SOA架构,因为它们不需要消息中间件组件。而微服务架构,在另一方面,是更适合较小和良好的分割的基于web的系统。另外,如果您在开发移动或web应用程序,微服务作为开发人员可以为您提供更大的控制权。最后,可以得出结论,因为它们服务于不同的目的,微服务和SOA确实是不通类型的体系结构。

 

上一篇:Java基础知识总结(绝对经典)

下一篇:Java面试题总结(绝对经典)

 

SOA(面向服务架构)是什么? 现在对SOA理解些了吗?SOA是一种面向服务的架构,基于分布式架构,它将不同业务功能按服务进行拆分,并通过这些服务之间定义良好的接口和协议联系起来。先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。httpshttpshttpshttps。... 阅读详情

相关推荐

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

1.SOA架构和微服务架构的区别 首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。 1.SOA(Service Oriented Architecture)“面向服务的架构”:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务 通常以独立的形式存在与操作系统进程中。各个服务之间 通过网络调用。 2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,..

usstmiracle的博客 1万+

SOA架构概述--基本概念

SOA架构是一种组件模型,它采用广为接受的标准,将业务功能封装成标准化的服务,通过确定的且与最后实现没有关联的接口进行定义。SOA架构主要有三种实体:service provider(服务提供者)、service requestor(服务使用者)和service register(服务注册中心)。SOA(Service-Oriented Architecture)是一种基于服务的体系结构,它将应用程序的不同功能单元通过标准化的方式组织在一起。这样,各服务组件之间就可以相互访问,从而扩展了服务的组合形式。

weixin_46481662的博客 4476

从零到一:海外短剧成品系统源码搭建流程详解及APP+H5交付服务

在当今全球化的数字娱乐浪潮中,海外短剧市场以其独特的文化魅力和广阔的受众基础,正逐渐成为内容创作者与平台运营者争相布局的新蓝海。我为了紧跟时代的发展我翻看了大量的文章,偶然间看到了一篇文章点进去发现他们是专业做短剧开发的,总结下来在这篇文章里分享给大家。

liangyill_的博客 909

SOA架构概述

SOA(Service-Oriented Architecture,面向服务的架构)是一种在计算机环境中设计、开发、部署和管理离散模型的方法。SOA不是一种新鲜事物,它是在企业内部IT系统重复构建以及效率低下的背景下提出的。在SOA模型中,所有的功能都被定义成了独立的服务,所有的服务通过服务总线(ESB)或流程管理器来连接。

u011441473的专栏 1万+

SQL实现数据仓库ETL:分层设计、增量抽取与性能优化实践

在数据仓库建设过程中,ETL(抽取、转换、加载)是数据流转的核心环节。传统观点常将ETL与专业工具或大数据框架绑定,但在中小规模数据场景下,基于SQL的ETL方案凭借低门槛、高可维护性和直观的排错体验,成为高效且务实的选择。本文从ETL的基础概念出发,阐述数据仓库分层(ODS、DWD、DWS、ADS)中每层ETL的定位与职责,重点剖析增量抽取策略(时间戳、主键、日志)下的SQL实现方式,以及数据清洗、去重和格式化的常见写法。同时,结合真实项目经验,分享慢SQL优化技巧、任务调度依赖设计、幂等性保障和常见问题

weixin_33290540的博客 346

IPMItool 控制风扇转速

然后手动设置风扇,最后一位0x1e为设置30%的转速(16进制)。最后4位 0x0f 表示15%,0x0a,表示10%,不建议小于10%,因为10%已经很静音了 如果再小怕不能控温,烧毁硬件。首先停止服务器的自动风扇控制,最后一位0x00表示停止自动风扇控制,0x01为开启自动风扇控制。首先开启主板上的ipmi 设置好 用户名密码。此过程可以在网上搜索,有很多的资料可以参考。解压只有在目录里面有ipmltool。下面是一些常用的修改温度命令。

m0_37970303的博客 5061

微服务(Microservices)与面向服务架构(SOA)、单体架构:深入解析与指南

SOA通过ESB整合企业级系统,确保严格治理与复用,适合金融等强一致性场景;微服务以独立部署、技术自由和弹性伸缩取胜,驱动电商、SaaS快速迭代。混合架构正成趋势:核心业务用SOA稳根基,创新模块借微服务提敏捷,Service Mesh技术让分布式治理更轻盈。

宝爷的专栏 1634

ArcGIS栅格拼接全攻略:从核心原理到色彩平衡与大数据处理

在GIS数据处理中,栅格拼接是一项基础且关键的操作,其本质是将多幅具有重叠区域的栅格图像无缝整合为一张完整地图。该技术涉及空间参考统一、像元对齐与色彩融合等核心原理,是构建连续地理空间数据的基石。其技术价值在于保障数据完整性、提升可视化效果,并为后续的空间分析提供可靠底图。在遥感影像处理、数字高程模型构建及地图制图等应用场景中,高质量的拼接成果至关重要。本文聚焦于ArcGIS平台,深入解析其栅格拼接工具,并针对常见的色彩不一致与大数据量处理难题,提供了基于**色彩平衡**和**金字塔**优化的实战解决方案,

weixin_33158887的博客 262

微服务架构与SOA架构

微服务由SOA架构演变而来,继承了SOA架构的优点,同时对SOA架构缺点进行改善,数据传输采用JSON格式,相比于XML更轻量和快捷,粒度更细,更加便于敏捷开发。2.微服务架构:其实和 SOA 架构类似,微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。首先SOA和微服务架构一个层面的东西,而对于ESB和微服务网关是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。

刘皇叔说Java的博客 2597

Setup&Hold互卡问题和Useful Skew的影响

setup和hold互卡问题分析

godping的博客 5093

PCL 区域生长分割【2026最新版】

区域生长算法原理介绍、代码实现以及一个具体实验场景的应用案例进一步实现将分割结果的分类保存至本地文件夹。最近一次更新时间为:2026年5月4日。

点云侠的博客 40万+

微服务架构和SOA架构

一、简介:  首先SOA和微服务架构是一个层面的东西,一个谈到是架构风格和方法,一个谈的是实现工具或组件。  1、SOA(Service Oriented Architecture)面向服务的架构:他是一种设计方法,其中包含多个服务, 服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用。  2、微服务架构:其实和 SOA 架构类似,微服...

苍穹尘的博客 3329

YOLO26涨点改进 | 独家创新,细节涨点改进篇 | CVPR 2025顶会 | YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文

本文给大家介绍Mona即插即用模块, 含MoCAA和DyTMona二次创新模块优化YOLO26模型。YOLO26引入 Mona通过引入多尺度视觉友好型卷积滤波器(如3x3、5x5、7x7深度卷积)和可伸缩归一化层来优化适配器设计,以更好地处理视觉信号并调节输入特征分布。YOLO26引入Mona即插即用模块, 含MoCAA和DyTMona二次创新改进,含多种创新改进高效发论文。适合目标检测、图像分割、图像分类等所有CV任务通用即插即用模块。

Ai缝合怪、助力小伙伴高效发论文 240

SOA架构、ESB和微服务架构

SOA 全称(Service Oriented Architecture),中文意思为“面向服务的架构”,他是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在于操作系统进程中。各个服务之间通过网络调用。 SOA所解决的核心问题 1.系统集成 2.系统的服务化 3.业务的服务化 ESB (企业服务总线),简单来说ESB就是一根管道,用来连接各...

凤凰涅槃 1万+

在iPad上使用Python进行编程

如果你拥有一台iPad,并且想在上面编写和运行Python代码,你会发现iPad提供了一些适用的工具和应用程序来满足你的需求。安装一个Python解释器应用程序,编写和运行Python代码,使用第三方库和模块,以及存储和共享代码,这些步骤将帮助你在iPad上进行Python编程。要在iPad上运行Python代码,首先需要安装一个Python解释器。这些应用程序提供了一个交互式的开发环境,允许你编写、编辑和运行Python代码。一旦你安装了Python解释器应用程序,你可以开始编写Python代码了。

2301_79366435的博客 4627

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

SOA架构 SOA是一种面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。 SOA架构中有两个主要角色:服务提供者(Provider)和服务使用者(Consumer)。而软件代...

qq_36525300的博客 9979

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

一文讲清微服务架构、分布式架构、微服务、SOA_分布式架构与soa架构与微服务的区别

目前微服务架构在四种架构中处于主流地位,很多应用第一、第二种架构的企业也开始慢慢转向微服务架构。到目前为止微服务的技术相对于二三年前已经比较成熟,第四种架构将是未来发展的一种趋势。

2401_84910683的博客 1582

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

传统架构、SOA 架构与微服务架构的区别

传统架构与微服务架构的区别 系统架构需要遵循的三个标准 提高敏捷性:及时响应业务需求,促进企业发展 提升用户体验:提升用户体验,减少用户流失 降低成本:降低增加产品、客户或业务方案的成本 传统的开发模式 先来看看传统的 WEB 开发方式,通过对比比较容易理解什么是 微服务架构。和 微服务 相对应的,这种方式一般被称为 单体式开发(Monolithic)。 既所有的功能打包在一个 ...

步北宸的博客 3535

SOA 与微服务架构深度比较

SOA (面向服务架构) 和微服务架构都是分布式系统的设计范式,二者既有联系又有显著差异。

ttyy1112的专栏 1219

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

​SOA是传统企业整合的基石,​微服务是云原生时代的敏捷利器。架构选择应回归业务本质:​没有银弹,只有最适合的解决方案。最后的话:​“技术的本质不是代码,而是解决问题的方式。” —— 与所有开发者共勉✨ ​行动建议:​你在实践中遇到过类似问题吗?欢迎评论区分享经验。

十年磨锷,代码里藏着一座分布式江湖。 以Java为剑,Python为鞘,在亿级流量的烽火台前调优过性能,在微服务的迷雾中重构过秩序。 现为云原生时代的「混沌驯兽师」,专治高并发与系统熵增,偶尔在硅基文明里写诗。 1500

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

微服务架构中的前缀“微”是指内部组件的粒度,意味着它们必须比SOA架构的服务往往要小得多。面向服务的架构不太关于如何对应用程序进行模块化构建,更多的是关于如何通过分布式、单独维护和部署的软件组件的集成来组成应用程序。最后,我们可以得出结论,因为它们服务于不同的目的,微服务和SOA确实是不同类型的体系结构。不过,如果引用微软服务领域的先驱Martin Flower的话,他曾经说过,“我们应该把SOA看作微服务的超集”。可以说,两种架构比起不同的架构有更多的相似之处,然而,它们是两种不同类型的架构。

顺其自然~专栏 2047

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

注重重用,微服务注重重写 SOA 的主要目的是为了企业各个系统更加容易地融合在一起。 微服务通常由重写一个模块开始。要把整个巨石型的应用重写是有很大的风险的,也不一定必要。我们向微服务迁移的时候通常从耦合度最低的模块或对扩展性要求最高的模块开始。 把它们一个一个剥离出来用敏捷地重写,可以尝试最新的技术和语言和框架,然后 单独布署。它通常不依赖其他服务。微服务中常用的 API Gateway 的模式...

好记性不如烂笔头 913

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

SOA架构 SOA是一种面向服务的体系结构,是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。 SOA架构中有两个主要角色:服务提供者(Provider)和服务使用者(Consumer)。而软...

Bruce Che 的专栏 1377
上一篇: springboot怎么打包部署 | Spring Boot 11
下一篇: springboot实现热部署 | Spring Boot 13
哪 吒
哪 吒 2022年度博客之星TOP 1 2022年度博客之星TOP 1 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄9年 59万+粉丝 2953原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值