服务治理平台:SOA与微服务架构的对比与区别

news2024/11/18 3:32:38

文章目录

      • 1、场景引入
      • 2、面向服务的架构SOA
      • 3、微服务架构
      • 4、对比与联系
      • 5、服务治理平台

1、场景引入

如果我们打开支付宝首页,去看我们的余额,它会展示你的总资产,昨日收益、累计收益等信息。假如这个页面所展示的信息,都来自各个不同的系统/应用,我们通过各个接口把这些数据展示出来。如果我们现在要在前端页面展示这几项数据的话,我们应该怎么去展示呢?

  • 在这种情况下,我们不可能让客户端与6个不同的应用/系统都一一去通信来去完成数据的展示。而是6个应用/系统之间进行彼此通信来完成调用,最后客户端只需要调用一个接口来获取数据即可,而不是与每一个应用/系统进行通信。
  • 一个电商系统,比如淘宝,我们在首页会展示很多数据信息,例如:首页信息、商品信息、个人信息、推送信息等等很多。如果首页展示的数据来自100个不同的应用/系统,那么通过如上架构,我们在后端便会出现几百个乃至上千个通信的交互,那么后端的结构就会变得非常的庞大和复杂。所以在这样的架构下,我们需要对上面结构作出一些调整 ,所以我们就引入了SOA架构

在这里插入图片描述
在这里插入图片描述

2、面向服务的架构SOA

SOA(全称:Service Oriented Architecture),中文意思为 “面向服务的架构”,你可以将它理解为一个架构模型或者一种设计方法,而并不是服务解决方案。

  • 其中包含多个服务, 服务之间通过相互依赖或者通过通信机制,来完成相互通信的,最终提供一系列的功能。 一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用 。
  • 我们将各个应用之间彼此的通信全部去掉,在中间引入一个ESB企业总线,各个服务之间,只需要和ESB进行通信,这个时候,各个应用之间的交互就会变得更加的清晰,业务架构/逻辑等,也会变得很清楚。原本杂乱没有规划的系统,梳理成了一个有规划可治理的系统,在这个过程中,最大的变化,就是引入了ESB企业总线。
    在这里插入图片描述

在这里插入图片描述

  • 服务总线、服务提供者、业务流程重构、服务寻址、分布式事务模式
    在这里插入图片描述

3、微服务架构

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

  • 组件化:组件表示一个可以独立更换和升级的单元,就以PC机为例,PC中的 CPU、内存、显卡、硬盘一样,独立更换升级而不影响其他单元。如果我们把PC作为组件以服务的方式构建,那么这台PC只需要维护主板和一些必要的外部设备。CPU、内存、硬盘都是以组件方式提供服务,PC需要调用CPU做计算处理,只需要知道CPU这个组件的地址即可。

在这里插入图片描述

  • 微服务不仅仅是带来服务拆分、编排管理、持续集成、部署等一系列问题,微服务内部也会有很多问题。针对企业使用微服务架构后带来的一系列问题,也就有了服务治理平台
    在这里插入图片描述

4、对比与联系

  • SOA 更加适合于庞大、复杂、异构的企业级系统。
    这类系统的典型特征就是很多系统已经发展多年,各个服务具有异构性,比如:采用不同的企业级技术、有的是内部开发的、有的是外部购买的,无法完全推倒重来或者进行大规模的优化和重构。因为成本和影响太大,只能采用兼容的方式进行处理,而承担兼容任务的就是 ESB。

  • 微服务更加适合于快速、轻量级、基于 Web 的互联网系统,
    这类系统业务变化快,需要快速尝试、快速交付;同时基本都是基于 Web,虽然开发技术可能差异很大(例如,Java、.NET、PHP 等),但对外接口基本都是提供 HTTP RESTful 风格的接口,无须考虑在接口层进行类似 SOA 的 ESB 那样的处理。

  • 服务粒度
    SOA 的服务粒度要粗一些,而微服务的服务粒度要细一些。例如,对一个电商企业来说,商品管理系统是一个 SOA 架构中的服务;而如果采用微服务架构,则商品管理系统会被拆分为更多的服务,比如商品基本信息管理、供应商管理、入库管理等更多服务。

  • 服务通信
    SOA 采用了 ESB 作为服务间通信的关键组件,负责服务定义、服务路由、消息转换、消息传递,一般情况下都是重量级的实现。微服务则使用统一的协议和格式,例如:HTTP RESTful 协议、TCP RPC 协议,不需要 ESB 这样的重量级实现。

  • 服务交付
    SOA 对服务的交付没有特殊要求,因为 SOA 更多考虑的是兼容已有的系统;微服务的架构理念则要求快速交付,相应地要求采取自动化测试、持续集成、自动化部署、自动化运维等的最佳实践。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

5、服务治理平台

SOA(面向服务的架构)服务治理平台是在SOA架构基础上构建的一个特定的软件工具或平台,用于支持和管理企业中的面向服务的架构。它是SOA的一部分,用于解决在实施和管理SOA架构时所面临的挑战和需求。

  • 范围和定位:SOA是一种软件设计模式或架构范式,通过将应用程序划分为一系列相互独立且可重用的服务来构建系统。它关注的是服务的设计、实现和集成等方面。而SOA服务治理平台是针对SOA架构而设计的一个管理平台,用于管理和监控企业中的服务,包括服务的注册、发现、版本控制、安全管理等方面
  • 功能和特性:SOA服务治理平台提供了一系列特定的功能和工具,用于解决SOA架构中的治理需求。 它通常包括服务注册表/仓库、服务生命周期管理、服务监控和管理、安全和访问控制、服务版本控制、服务合约管理等功能。而SOA本身并没有明确定义或提供特定的治理功能,它更强调服务的组织和集成
  • 目的和价值:SOA架构的目的是实现系统的松耦合、可重用性和灵活性,提供面向服务的解决方案。**而SOA服务治理平台的目的是增强SOA架构的可管理性、可控制性和可扩展性。**它通过提供管理和监控工具,帮助企业更好地组织、管理和维护服务,提高系统的稳定性和可靠性。

当涉及到具体的例子,我们可以以一个企业的SOA架构为背景来说明SOA服务治理平台与SOA的区别。

  • 假设某个企业采用了SOA架构来构建其业务系统,将不同的业务功能划分为独立的服务。这些服务可能包括订单服务、支付服务、用户管理服务等等。
  • 在这种情况下,SOA架构关注的是如何设计、实现和集成这些服务,以实现系统的松耦合和可重用性。
  • 然而,随着服务数量的增加和复杂性的提高,企业可能面临一些具体的挑战,例如:
    服务的发现和重用: 随着服务数量增加,如何方便地发现和重用已有的服务,避免重复开发,提高开发效率和系统的可维护性。
    服务的版本控制: 当服务发生变更或升级时,如何管理不同版本的服务,并确保服务之间的版本兼容性,以避免系统的不稳定性或功能冲突。
    服务的安全管理: 如何确保只有授权的用户或系统可以访问和使用服务,同时保护服务和数据的安全性,防止潜在的安全威胁。
    服务的监控和管理: 如何实时监控服务的性能、可用性和健康状况,及时发现和解决潜在的问题,确保服务的稳定运行。
  • 为了解决这些挑战,企业可以引入SOA服务治理平台作为一个辅助工具。该平台可以提供以下功能:
    注册表/仓库:作为服务的中心化存储,记录服务的元数据信息,包括接口定义、版本信息、访问权限等。这样,开发人员可以方便地查找现有的服务并进行重用。
    服务版本控制:治理平台可以跟踪和管理不同版本的服务,并提供机制来管理服务的升级和回退。这样,可以确保服务之间的版本兼容性,避免潜在的冲突和问题。
    安全和访问控制:治理平台提供身份验证、授权和加密等安全机制,确保只有授权的用户或系统可以访问和使用服务,保护服务和数据的安全性。
    服务监控和管理:治理平台可以实时监控服务的性能指标、调用情况、错误率等,帮助管理员识别和解决问题,确保服务的稳定运行。
  • 通过引入SOA服务治理平台,企业可以更好地管理和控制其SOA架构中的服务
    该平台提供了一系列工具和功能,帮助企业解决SOA架构中的具体挑战,提高系统的可管理性、可控制性和可扩展性。

微服务与微服务治理平台:

  • 微服务:
    用户服务:负责处理用户注册、登录、个人信息管理等功能。
    订单服务:负责处理订单创建、支付状态管理等功能。
    支付服务:负责处理支付请求、支付回调等功能。
    产品服务:负责处理产品列表、详情、库存管理等功能。
  • 微服务治理平台:
    微服务治理平台是一个辅助工具,帮助企业管理和监控微服务架构中的各个微服务。它提供以下功能:
    服务注册与发现:将各个微服务注册到治理平台的服务注册表中,使其他微服务能够发现和调用它们。例如,每个微服务在启动时会向治理平台注册自己的服务信息,包括服务地址和接口定义。
    负载均衡和容错:治理平台可以实现负载均衡策略,将请求合理地分配给可用的微服务实例,提高系统的性能和可靠性。当某个微服务实例发生故障时,治理平台可以自动将请求转发到其他可用的实例,实现容错机制。
    服务监控与追踪:治理平台提供实时监控和统计微服务的性能指标,例如请求响应时间、错误率等。它还可以记录请求的追踪信息,帮助开发人员在分布式环境中调试和排查问题。
    安全与访问控制:治理平台提供安全机制,确保只有授权的服务或客户端可以访问特定的微服务。它可以提供身份验证、访问令牌管理、API密钥等功能,保护微服务的安全性。
    配置管理:治理平台可以集中管理微服务的配置信息,例如数据库连接、第三方服务的地址等。这样,可以在运行时动态修改配置,而无需重新部署微服务。
  • 在上述电子商务应用的例子中,微服务治理平台充当了一个中心化的管理和监控工具,帮助企业更好地组织和管理微服务架构。它提供了服务注册与发现、负载均衡和容错、服务监控与追踪、安全与访问控制以及配置管理等功能,以增强微服务架构的可管理性、可控制性和可扩展性。

微服务治理平台适用于微服务架构,处理大量的小型微服务实例和复杂的服务通信,通常与现代的微服务技术栈集成。
SOA治理平台适用于面向服务的架构,处理较少的服务实例和相对简单的服务通信,通常与传统的中间件和ESB集成。

  • 粒度和规模:
    微服务治理平台:微服务架构强调将应用程序拆分为多个小型的、自治的微服务,每个微服务专注于一个特定的业务功能。因此,微服务治理平台通常需要处理大量的微服务实例和复杂的服务之间的通信和协调
    SOA治理平台:SOA架构中的服务可以更加粗粒度,可以是较大的业务组件或应用程序模块。因此,SOA治理平台通常处理较少的服务实例相对简单的服务通信

大型项目通常更倾向于使用微服务架构而不是传统的SOA架构。微服务架构在处理大型项目时具有以下优势:

  • 模块化和可维护性:微服务架构将应用程序拆分为一组小型、自治的服务,每个服务专注于单一的业务功能。这种模块化的结构使得系统更易于理解、开发和维护。团队可以独立开发和测试每个微服务,而不会影响整个系统。
  • 弹性和可伸缩性:微服务架构使得每个微服务可以独立进行水平扩展,根据需要分配资源。这种弹性和可伸缩性使得系统能够处理高流量和负载,并更好地应对峰值情况。
  • 技术多样性:微服务架构鼓励使用适合每个微服务的最佳技术栈和工具。这使得团队可以选择最适合其业务需求的技术,而不必被固定于单一的技术栈。这对于大型项目来说尤为重要,因为它们可能需要整合多个系统和技术。
  • 独立部署和可运维性:微服务架构使得每个微服务可以独立进行部署和运维,而不会影响其他微服务。这种独立性简化了系统的维护和故障排除,并减少了对整个系统的风险。

尽管微服务架构在现代应用开发中越来越受欢迎,SOA仍然具有一些优势,特别是在某些情况下:

  1. 统一的数据模型和标准:SOA架构强调使用统一的数据模型和标准来定义和交换服务。这种一致性有助于不同系统之间的集成和协作,降低了数据转换和映射的复杂性。SOA使用XML和SOAP等标准,使得不同平台和技术之间的通信更加容易。

  2. 中央化的管理和治理:SOA架构通常使用中央化的管理和治理模式。这意味着可以集中管理和控制所有服务的注册、发现、安全性、版本控制和访问控制等方面。这种中央化的管理和治理模式在某些场景下更容易实施和维护。

  3. 适用于传统企业环境:SOA架构在过去几十年中已经被广泛采用,特别是在传统企业环境中。许多企业拥有大量的SOA基础设施和相关技术,这使得扩展和改进现有的SOA系统比全面采用微服务更容易。

  4. 重用和共享:SOA架构鼓励服务的重用和共享。通过定义通用的服务,不同部门和应用程序可以共享和重用这些服务,从而提高开发效率和资源利用率。

  5. 成熟的工具和解决方案:由于SOA架构的历史悠久,已经有许多成熟的工具和解决方案可用于SOA开发、集成和管理。这些工具和解决方案提供了一套完整的功能,包括服务注册、发现、消息传递、事务管理等。

尽管SOA具有上述优势,但在某些方面微服务架构更适合现代应用开发的需求。微服务架构提供了更高的灵活性、可伸缩性和独立性,使得团队能够更快地迭代和交付新功能。同时,微服务架构更适合构建复杂的分布式系统,支持多样化的技术栈和团队自治。因此,在选择架构时,需要综合考虑项目需求、团队能力和现有基础设施等因素。

参考资料:1, 2,3,4,5

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1018388.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非常详细的trunk-based分支管理流程配置及使用

非常详细的trunk-based分支管理流程配置及使用。 目前业界主流的版本管理流程是Gitflow 和 trunk-based。 Gitflow流行的比较早。但是目前的流行度要低于 trunk-based模式工作流。trunk-based模式被誉为是现代化持续集成的最佳实践。 他俩的核心区别是,Gitflow是一个更严格…

格式化文件恢复软件有哪些 格式化文件恢复软件怎么用

格式化是指对磁盘或者磁盘中的分区进行初始化的一种操作,但是这种操作会造成磁盘内数据的清除。因此,当我们需要恢复一些数据时,就要借助相关数据恢复软件的帮助,那么下面就来给大家介绍格式化文件恢复软件有哪些,格式…

ORB-SLAM2_RGBD_DENSE_MAP编译、问题解决、离线加载TUM数据和在线加载D435i相机数据生成稠密地图

文章目录 0 引言1 安装依赖1.1 其他库安装1.2 pcl库安装 2 编译ORB-SLAM2_RGBD_DENSE_MAP2.1 build.sh2.2 build_ros.sh 3 运行ORB-SLAM2_RGBD_DENSE_MAP3.1 build.sh编译版本3.2 build_ros.sh编译版本 0 引言 ORB-SLAM2_RGBD_DENSE_MAP是基于ORB-SLAM2框架的一种RGB-D稠密地图…

【C++】LeetCode 160 相交链表

今天再写一道算法题(这两周都写算法题有点摆烂) 题目 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回 null 。 图示两个链表在节点 c1 开始相交&#xff1…

第17篇ESP32 platformio_arduino框架 AP热点与AP+STA同时存在模式

笔记本连接ESP32后,串口打印连接状态: 第1篇:Arduino与ESP32开发板的安装方法 第2篇:ESP32 helloword第一个程序示范点亮板载LED 第3篇:vscode搭建esp32 arduino开发环境 第4篇:vscodeplatformio搭建esp32 arduino开发环境 ​​​​​​第5篇:doit…

影楼管理系统软件erp如何通过快解析发布到外网登录访问

影楼管理系统也叫影楼ERP软件,即影楼信息化管理系统,通常集成了选片、影楼流程管理、婚纱礼服、影楼财务、影楼客服、影楼接单等多功能为一身的影楼app管理。通过影楼管理系统把客户关系管理理念引入影楼管理,有序而全面的建立客户资料库&…

【9】openGL调用imGUI使用其自带例子测试

参考视频 去github下载imgui源码,得到 将根目录下所有.h .cpp文件复制到你的项目文件夹imgui下面。 进入exmaple文件夹,可以看到例子 这是它调用的头文件 在backends里找到你需要的 .h .cpp文件,总共四个文件,复制过来 你的项…

使用阿里云无影云电脑能干什么?

阿里云无影云电脑是一种易用、安全、高效的云上桌面服务,阿里云无影云电脑可用于高数据安全管控、高性能计算等要求的金融、设计、视频、教育等领域,适用于多种办公场景,如远程办公、多分支机构、安全OA、短期使用、专业制图等。阿里云百科来…

Java基于微信小程序的电影交流平台

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 文章目录 第一章:简介第二章、开发环境:后端:前端:数据库&…

阿里云无影云电脑介绍_云办公_使用_价格和优势说明

什么是阿里云无影云电脑?无影云电脑(原云桌面)是一种快速构建、高效管理桌面办公环境,无影云电脑可用于远程办公、多分支机构、安全OA、短期使用、专业制图等使用场景,阿里云百科分享无影云桌面的详细介绍、租用价格、…

Android Media3 ExoPlayer 开启缓存功能

ExoPlayer 开启播放缓存功能,在下次加载已经播放过的网络资源的时候,可以直接从本地缓存加载,实现为用户节省流量和提升加载效率的作用。 方法一:采用 ExoPlayer 缓存策略 第 1 步:实现 Exoplayer 参考 Exoplayer 官…

Docker 部署 Bitwarden RS 服务

Bitwarden RS 服务是官方 Bitwarden server API 的 Rust 重构版。因为 Bitwarden RS 必须要通过 https 才能访问, 所以在开始下面的步骤之前, 建议先参考 《Ubuntu Nginx 配置 SSL 证书》 配置好域名和 https 访问。 部署 Bitwarden RS 拉取最新版本的 docker.io/vaultwarden…

快递、外卖、网购自动定位及模糊检索收/发件地址功能实现

概述 目前快递、外卖、团购、网购等行业 :为了简化用户在收发件地址填写时的体验感,使用辅助定位及模糊地址检索来丰富用户的体验 本次demo分享给大家;让大家理解辅助定位及模糊地址检索的功能实现过程,以及开发出自己理想的作品…

【Java】应用层协议HTTP和HTTPS

HTTP和HTTPS协议 HTTPHTTP协议的工作过程HTTP协议格式抓包工具抓包结果 HTTP请求(Request)URL方法GET方法POST请求其他方法 报头(header)HostContent-lengthContent-TypeUser-AgentRefererCookie 正文(body) HTTP响应HTTP状态码响应报头(header)响应正文(body) 通过form表单构造…

【RocketMQ】(四)消息的拉取

在上一讲中,介绍了消息的存储,生产者向Broker发送消息之后,数据会写入到CommitLog中,这一讲,就来看一下消费者是如何从Broker拉取消息的。 RocketMQ消息的消费以组为单位,有两种消费模式: 广播…

c++拷贝对象时的优化问题

博主是基于VS2019测试的&#xff0c;不同编译器可能情况不一样。示例分析只有传值传参传值返回一道例题 博主是基于VS2019测试的&#xff0c;不同编译器可能情况不一样。 看下面这一个类A&#xff1a; class A { public:A(int a 0):_a(a){cout << "A(int a 0)&q…

通过stream流实现分页、模糊搜索、按列过滤功能

通过stream实现分页、模糊搜索、按列过滤功能 背景逻辑展示示例代码 背景 在有一些数据通过数据库查询出来后&#xff0c;需要经过一定的逻辑处理才进行前端展示&#xff0c;这时候需要在程序中进行相应的分页、模糊搜索、按列过滤了。这些功能通过普通的逻辑处理可能较为繁琐…

Win7开机进入修复界面处理方法

Win7开机进入修复界面处理方法 2023-09-18 呓语煮酒 大家在使用Windows7的时候是否出现过这样一个问题&#xff0c;就是电脑开机后进入修复界面&#xff0c;界面如下&#xff1a; 一般出现这样的问题基本都是电脑主机非正常关机导致的。一般家用主机都是按照正常关机&#xf…

浅谈C++|STL之deque篇

一.deque基本概念 功能&#xff1a; 双端数组&#xff0c;可以对头端插入删除操作 deque与vector区别: vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低deque相对而言&#xff0c;对头部的插入删除速度回比vector快vector访问元素时的速度会比d…

Linux高性能服务器编程 学习笔记 第四章 TCP/IP通信案例:访问Internet上的Web服务器

Web客户端和服务器之间使用HTTP协议通信。 我们按以下方式来部署通信实例&#xff1a;在Kongming20上运行wget客户端程序&#xff08;一个在命令行下使用的网络下载工具&#xff0c;它支持通过HTTP、HTTPS和FTP协议下载文件&#xff09;&#xff0c;在ernest-laptop上运行squi…