0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

汽车玩家 来源:csdn 作者:csdn 2020-05-04 14:11 次阅读

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

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

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

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

ESB和微服务API网关

1.ESB(企业服务总线)

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

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

2.API网关

API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。

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

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

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

SOA架构特点

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

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

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

微服务架构特点

1.通过服务实现组件化

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

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

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

3.去中心

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

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

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

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

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

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

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

主要区别:

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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SOA
    SOA
    +关注

    关注

    1

    文章

    281

    浏览量

    27400
  • 微服务
    +关注

    关注

    0

    文章

    131

    浏览量

    7321
收藏 人收藏

    评论

    相关推荐

    架构与设计 常见微服务分层架构区别和落地实践

    架构风格越倾向于清晰的职责定位,且让领域模型成为架构的核心。 基于这些架构风格,在软件架构设计过程中又有非常多的架构分层模型。 传统三层
    的头像 发表于 10-22 15:34 104次阅读
    <b class='flag-5'>架构</b>与设计 常见<b class='flag-5'>微服务</b>分层<b class='flag-5'>架构</b>的<b class='flag-5'>区别</b>和落地实践

    微服务架构与容器云的关系与区别

    微服务架构与容器云密切相关又有所区别微服务将大型应用拆分为小型、独立的服务,而容器云基于容器技术,为
    的头像 发表于 10-21 17:28 126次阅读

    服务器而言,ARM架构与X86架构有什么区别?各自的优势在哪里?

    一、服务架构概述 在数字化时代,服务架构至关重要。服务器是网络核心节点,存储、处理和提供数据与服务
    的头像 发表于 09-09 14:05 1097次阅读

    INA188与AD620的主要区别是什么?

    INA188与AD620的主要区别是什么?
    发表于 08-16 13:13

    dwdm与wdm的主要区别

    光纤通信中广泛使用的多路复用技术。它们的主要区别在于波长间隔、系统容量、成本和应用领域等方面。 波长间隔 DWDM和WDM的主要区别在于它们使用的波长间隔。WDM技术使用较大的波长间隔,通常在20nm到
    的头像 发表于 07-18 10:34 507次阅读

    架构服务建模,关键在这6步!

    经纬恒润基于SystemWeaver平台,按照SOA建模理念为客户提供了新一代基于SOA的企业级电子电气系统协同设计解决方案,可以有效支持服务和信号的混合架构建模。
    的头像 发表于 07-08 10:36 1239次阅读
    新<b class='flag-5'>架构</b>下<b class='flag-5'>服务</b>建模,关键在这6步!

    ai服务器是什么架构类型

    AI服务器,即人工智能服务器,是专门为人工智能应用设计的高性能计算服务器。AI服务器的架构类型有很多种,以下是一些常见的
    的头像 发表于 07-02 09:51 838次阅读

    游戏公司不使用微服务架构的原因

    微服务基本只有 request/response 的模式。做不了 streaming?微服务通常要求应用是无状态的才能做到水平扩展。streaming 本身就是加入了状态
    的头像 发表于 12-29 11:18 396次阅读

    如何搭建微服务架构的全局图景

    如果一直保持共用数据库的模式,则整个架构会越来越僵化,失去了微服务架构的意义。因此小明和小红一鼓作气,把数据库也拆分了。所有持久化层相互隔离,由各个服务自己负责。另外,为了提高系统的实
    的头像 发表于 12-27 15:16 450次阅读
    如何搭建<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的全局图景

    AD9162和AD9164的主要区别是什么?

    AD9162和AD9164的主要区别是什么,我看手册里两个DAC的描述和封装管脚是一样的,但两者的价格差别很大,请问两者的主要区别是什么,有没有二者的对比参数类的描述
    发表于 12-11 06:44

    dubbo和spring cloud区别

    Dubbo和Spring Cloud是两个非常流行的微服务框架,各有自己的特点和优势。在本文中,我们将详细介绍Dubbo和Spring Cloud的区别。 1.架构设计: Dubbo是阿里巴巴开源
    的头像 发表于 12-04 14:47 1516次阅读

    如何构建弹性、高可用的微服务

    基于微服务的应用程序可实现战略性数字转型和云迁移计划,对于开发团队来说,这种架构十分重要。那么,如何来构建弹性、高可用的微服务呢?RedisEnterprise给出了一个完美的方案。文况速览
    的头像 发表于 11-26 08:06 433次阅读
    如何构建弹性、高可用的<b class='flag-5'>微服务</b>?

    设计微服务架构的原则

    微服务是一种软件架构策略,有利于改善整体性能和可扩展性。你可能会想,我的团队需不需要采用微服务,设计微服务架构有哪些原则?本文会给你一些灵感
    的头像 发表于 11-26 08:05 531次阅读
    设计<b class='flag-5'>微服务</b><b class='flag-5'>架构</b>的原则

    docker微服务架构实战

    随着云计算和容器化技术的快速发展,微服务架构在软件开发领域中变得越来越流行。微服务架构将一个大型的软件应用拆分成多个小型的、独立部署的服务
    的头像 发表于 11-23 09:26 601次阅读

    springcloud微服务架构

    Spring Cloud是一个开源的微服务架构框架,它提供了一系列工具和组件,用于构建和管理分布式系统中的微服务。它基于Spring框架,旨在通过简化开发过程和降低系统复杂性来帮助开发人员构建弹性
    的头像 发表于 11-23 09:24 1118次阅读