Web SOA和微服务之间的区别是什么

Web SOA和微服务之间的区别是什么,web,microservices,distributed-computing,soa,Web,Microservices,Distributed Computing,Soa,好的,据我所知,在SOA和微服务中,模块应该是独立的和可重用的。但是SOA和微服务的真正区别是什么呢?两者都依赖服务作为主要组件,但有很多不同之处。很少有人在下面 SOA: 遵循“尽可能多地共享”的体系结构方法 支持多种消息协议 多线程,具有更多开销以处理I/O 最大限度地提高应用程序服务的可重用性 未完全专注于DevOps/持续交付 微服务: 遵循“尽可能少地共享”的体系结构方法 使用轻量级协议,如HTTP/REST和AMQP 单线程,通常使用事件循环功能进行非锁定I/O处理 更关注脱钩

好的,据我所知,在SOA和微服务中,模块应该是独立的和可重用的。但是SOA和微服务的真正区别是什么呢?

两者都依赖服务作为主要组件,但有很多不同之处。很少有人在下面

SOA:

  • 遵循“尽可能多地共享”的体系结构方法
  • 支持多种消息协议
  • 多线程,具有更多开销以处理I/O
  • 最大限度地提高应用程序服务的可重用性
  • 未完全专注于DevOps/持续交付
微服务:

  • 遵循“尽可能少地共享”的体系结构方法

  • 使用轻量级协议,如HTTP/REST和AMQP

  • 单线程,通常使用事件循环功能进行非锁定I/O处理

  • 更关注脱钩

  • 重点关注DevOps/持续交付


微服务体系结构不是一项发明。亚马逊、Netflix和eBay等企业使用分而治之的策略,在功能上将其单片应用程序划分为更小的单元,并解决了许多问题。随着这些公司的成功,许多其他公司开始采用这种模式来重构他们的应用程序。最终,这种模式被称为微服务体系结构。MSA中没有引入任何全新的内容。MSA是SOA的逻辑演进,支持现代业务用例

摘自:

SOA和微服务有很多共同点,乍一看,后者似乎只是SOA已经描述过的一个新的热门词汇。然而,两者之间存在一些差异

什么是微服务?

让我们先看看什么是微服务。虽然对于什么是微服务没有共同的定义,但微服务的定义有几个共同的特征。这些是:

  • 微服务是小型、独立的软件组件,它们共同构成一个应用程序
  • 微服务是面向业务的,这意味着软件体系结构专注于业务目的,例如业务能力、特定产品或服务
  • 每一个微服务都为更大的目的提供一小块软件。因此,微服务在运行时会定期相互通信
  • 微服务的一个主要目的是它们可以相互独立地开发和部署。这导致了开发团队在实践中的分散,这使他们能够更快地开发和部署,并且具有更少的依赖性和约束
  • 由于模块化架构和微服务之间通信接口数量的增加,可以更精确地分析错误和故障。此外,微服务体系结构的设计通常使它们在单个微服务提供错误的情况下仍能正常工作
  • 微服务体系结构通常用于不断发展的领域。在这样的环境中,独立开发和部署的优势以及容错性是最重要的
  • 什么是面向服务的体系结构(SOA)?

    SOA代表面向服务的体系结构,是一种软件体系结构风格,其中通用服务提供给同一体系结构中的其他组件,这些组件基于共享的通用服务提供更复杂的服务。最终,它类似于公司的共享服务中心

    让我们想象一下以下情况:一家在不同国家运营的公司目前没有共享服务中心。因此,基本的人力资源和财务活动,如工资和会计,在每个国家都是单独进行的。通过实施共享服务中心,公司可以将与这些活动相关的所有请求发送到执行这些活动的单个联系人。任务完成后,结果将发送回各个国家。然后,各个国家使用结果,使其适应国家规则或各自的劳动力,并向其客户提供额外、更复杂或更个性化的服务。SOA的工作方式非常相似。它允许从单个应用程序中提取基本服务,并将其捆绑到共享服务模块中。然后,此共享服务模块执行任务并将结果返回给各个应用程序,这些应用程序将进一步使用这些任务

    因此,让我们研究一下SOA和微服务有哪些共同点,哪些没有

    微服务和SOA有什么共同点?

    两者都能够集成到更广泛的IT中——与在自身边界之外没有集成的单片系统形成对比。在安全性非常重要或无法与其他系统协同的领域,单片系统可能是更好的选择。然而,随着云技术的广泛采用和所需的可扩展性,集成系统通常是架构师的首选解决方案 两者都试图识别可应用于不同上下文和环境的独立软件。SOA是通过将信息从一个系统传递到另一个系统的服务来实现的,而微服务是通过提供标准化通信接口的API来实现的 SOA可以有非常不同的范围,从非常小到非常大。与顾名思义不同的是,微服务也是如此,它可以只是服务中用户的身份验证,也可以是电子商务购物篮后面的完整购买过程

    这是什么