时尚

SOA与微服务的比较

2019-11-07 18:53:56来源:励志吧0次阅读

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

SOA与微服务的比较

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

而另一方面,微服务推重履行的标准(例如HTTp)却是人们广泛了解并共同使用的。我们可以通过选择合适的语言或工具来构建某个组件(微服务),进而获得本章“技术多样性”小节所提到的关键好处。除技术栈与服务规模之外,在SOA与微服务之间还有一个更大的区分:领域模型。在本章前面的内容中,我们曾讨论过去中心化。有管理的去中心化,也有数据的去中心化。在一个基于微服务的软件中,每个微服务应该在本地存储本身管理的数据,并将领域模型分别隔离到单个服务中。而在面向SOA的软件中,数据往往存储在单个大型的数据库中,服务之间会共享领域模型。

西地那非的功效

万艾可官方网_现在购买万艾可必须要处方吗万艾可官网上订购是真的吗

怎么预防万艾可不良反应的产生

分享到:
  • 友情链接
  • 合作伙伴