ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

一文告诉你SOA和微服务的各自特点是什么?

2021-06-29 20:01:17  阅读:217  来源: 互联网

标签:SOA 服务 一文 独立 应用程序 组件 各自 体系结构


什么是SOA?

SOA是计算机软件设计中的一种体系结构模式。在这种类型的应用程序中,组件通过通信协议(通常通过网络)向其他组件提供服务。面向服务的原则独立于任何产品、供应商或技术。SOA的完整形式是面向服务的体系结构

SOA使各种网络上的软件组件更容易相互协作,按照SOA架构构建的Web服务往往使Web服务更加独立。

什么是微服务?

微服务是一种面向服务的体系结构模式,其中应用程序被构建为各种最小的独立服务单元的集合。它是一种软件工程方法,侧重于将应用程序分解为具有良好定义接口的单个功能模块。

这些模块可以由拥有整个服务生命周期的小型团队独立部署和操作。

术语“micro”指的是一个微服务的规模,它必须由一个开发团队(5到10个开发人员)管理。在这种方法中,大型应用程序被划分为最小的独立单元。

什么是SOA架构?

面向服务的体系结构是一种软件设计风格。体系结构分为两部分

  • 功能方面
  • 服务质量方面

让我们详细了解一下这两个问题:

功能方面:

功能方面包括:

  • 传输 :这个组件将服务请求从服务使用者传输到服务提供者,并将服务响应从服务使用者传输到服务使用者。
  • 服务通信协议 :它允许服务提供者和使用者相互通信。
  • 服务描述 :它解释了调用它所需的服务和数据。
  • 服务 :这是一个实际的服务。
  • 业务流程 :此组件表示按特定的预定义顺序调用的服务组,这些服务与满足业务需求的特定规则相关联。
  • 服务注册中心 :此注册中心包含服务提供者用于发布其服务的数据描述。

服务质量方面:

服务质量包括:

  • 策略 :它是一组协议,服务提供者根据这些协议创建服务并向消费者提供服务。
  • 安全性 :它表示标识和授权过程所需的一组协议。
  • 事务 :提供一致结果的保证。
  • 管理 :SOA的这个组件帮助您定义用于管理服务的属性集。

什么是微服务体系结构?

它是一种体系结构开发风格,允许将应用程序构建为为业务领域开发的小型自治服务的集合。

让我们以一个用微服务体系结构开发的电子商务应用程序为例。在本例中,每个微服务都集中在单个业务能力上。搜索、评级和审查以及支付都有自己的实例(服务器),并相互通信。

在这种单机体系结构中,所有组件合并成一个模块。但是,在微服务体系结构中,它们被分散到相互通信的各个模块(微服务)中。

微服务之间的通信是一种无状态通信,其中每对请求和响应是独立的。因此,微服务可以轻松地进行通信。在微服务体系结构中,数据是联合的。每个微服务都有一个单独的数据存储。

SOA的特点

下面是SOA的重要特性

  • SOA使用接口来解决大型系统中的集成难题。
  • SOA通过使用xmlschema与客户、提供者和供应商进行通信。
  • SOA使用消息监视来改进性能度量并检测安全攻击。
  • 由于它重用了服务,所以软件开发和管理的成本略低。

微服务的特点

以下是微服务的基本功能:

  • 在微服务中,模块是松散耦合的
  • 项目管理,也可以模块化。
  • 可扩展性的成本很低
  • 在一个应用程序中使用多种技术作为多种功能非常容易。
  • 对于进化系统来说,它是一种理想的服务,在进化系统中,您无法预测将来可能访问您的应用程序的设备类型。

SOA的优势

下面是SOA的优点/好处

  • 编辑和更新任何服务都很容易
  • 服务具有相同的目录结构,允许使用者每次都从同一目录访问服务数据。
  • 服务使用公共语言与其他应用程序通信,这意味着它独立于平台
  • 与成熟的应用程序相比,服务通常规模较小。因此,更容易调试和测试独立服务。
  • SOA允许重用现有系统的服务,交替地构建新系统。
  • 它提供插入新服务或升级现有设施以满足新的业务需求。
  • 您可以增强服务的性能和功能,并轻松地进行系统升级。
  • SOA可以调整或修改不同的外部环境
  • 这些公司可以在不替换现有应用程序的情况下开发应用程序。
  • 它提供了可靠的应用程序,与大量代码相比,您可以在其中测试和调试独立的服务。

微服务优势

以下是使用微服务的优点/好处:

  • 易于开发人员理解的更简单的体系结构模式
  • IDE速度更快,使开发人员更快、更高效
  • web容器启动更快;这有助于加快部署和开发过程。
  • 它允许团队独立于所有其他团队开发、部署和扩展其服务。

SOA的缺点

以下是使用面向服务架构的缺点:

  • 在将所有输入发送到服务之前,应该对其进行验证
  • 就人力资源、开发和技术而言,SOA是一项成本高昂的服务。
  • 一些web服务需要频繁地发送和接收消息和信息,因此它很容易达到每天一百万个请求。
  • SOA需要高投资成本
  • 当一个服务与另一个服务交互时会有更大的开销,这将增加响应时间
  • SOA服务不适用于GUI(图形用户界面)应用程序,因此当SOA需要大量数据交换时,它将变得更加复杂。

微服务的劣势

以下是微服务的缺点:

  • 它是为构建单片应用程序而开发的,因此它不为开发分布式应用程序提供明确的支持。
  • 测试更困难
  • 开发人员必须实现服务间通信机制。
  • 实现跨多个服务的用例需要团队之间的协调。
  • 微服务成本很高,因为您总是需要为不同的业务任务维护不同的服务器空间

哪种架构更好?

SOA是大型复杂业务应用程序的理想体系结构方法。它最适合于需要与许多不同应用程序集成的环境。

然而,具有定义良好的处理流的基于工作流的应用程序很难借助SOA架构模式来实现。因此,小型应用程序也不适合SOA,因为它们不需要中间件消息传递组件。另一方面,微服务模式非常适合更小、分区良好的基于web的系统。

主要区别:

  • SOA侧重于应用程序服务的可重用性,而微服务更侧重于解耦。
  • SOA本质上是全栈的,而微服务是单片的
  • SOA应用程序是为执行许多业务任务而构建的,而微服务是为执行单个业务任务而构建的。
  • SOA涉及在服务之间共享数据存储,而在微服务中,每个服务可以有独立的数据存储。
  • SOA被设计成跨服务共享资源,而Microservices被设计成托管可以独立运行的服务。
  • 在SOA架构中,DevOps和连续交付正变得流行,但还没有成为主流,而微服务则非常强调DevOps和连续交付。
  • SOA是一个可伸缩性较差的体系结构,而Microservices是一个可伸缩性很高的体系结构。

标签:SOA,服务,一文,独立,应用程序,组件,各自,体系结构
来源: https://blog.csdn.net/MXC1146/article/details/118342521

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有