微服务架构 vs SOA架构

    微服务是什么?

    微服务是一种架构设计。在架构中经过将业务逻辑拆分红一系列小而松散耦合的分布式组件来共同构成较大的应用。其中每一个组件都被称为一个服务,而每一个服务都在总体架构中执行着单独的任务。架构

    微服务架构使得一个复杂的应用被拆分为一系列简单的微小服务,而这使得后期维护简单,每一个小团队负责一个或多个服务,能够快速高效的解决问题。同时微服务在如今的弹性部署很是有优点,某些微服务有瓶颈直接扩容升级而不须要再和之前同样总体优化升级,很好利用弹性云等基础设施。分布式

    SOA是什么?微服务

     服务导向式架构(SOA---service oriented architecture)是集成多个较大组件(通常是应用)的一种机制,它们将总体构成一个彼此协做的套件。通常来讲,每一个组件会从始至终执行一块完整的业务逻辑,一般包括完成总体大action所需的各类具体任务与功能。组件通常都是松耦合的,固然也能够紧耦合,没有硬性规定。优化

    SOA其实能够看作早期版本的microservice,不过其粒度比microservice大不少。而粒度过大就会致使一些组件比较复杂,一些较大的组件也可能太过复杂而难以实现自动化,在最坏的状况下甚至彻底没法实现。
网站

     购物网站的例子
架构设计

一个在线购物网站一般会有一些不一样的功能,好比商品目录,购物车等等。设计

    若是采用SOA的架构设计通常会将网站按照大的功能拆分为模块,并将每一个部分做为独立应用分别开发,最后集成到一块儿。好比购物车的全部功能是一个应用,他们须要了解整个购物车的工做机制,以便可以修改。在这个应用中,购物车设计的逻辑包括显示物品、增长或移除购物车商品、查看库存、处理运费、处理金额计算、短信发送,邮件发送等。而这些功能在别的模块是也有的,是彻底能够复用的,可是他们是由不一样团队开发致使重复实现,后期若是有改动还得都改动来保证一致性。开发

    若是微服务架构会将购物车切分红较小的服务。再也不是购物车应用了,而多是金额计算服务、添加/移除商品服务、运费服务。这样后期维护简单高效。出现新需求也能很快响应。部署

    类似却不相同团队协作

    微服务与SOA有不少相同之处。二者都是松耦合分布式组件的系统结构。可是架构背后的意图是不一样的:SOA尝试将应用集成,通常采用中央管理模式来确保各应用可以交互运做。微服务尝试部署新功能,快速有效地扩展开发团队。它着重于分散管理、代码再利用与自动化执行。

   结论:

      SOA提供的粒度比较粗,microservice提供粒度更细。两种各有优点,粗粒度复杂度低,较简单,比较适合提供企业服务的应用,好比给xx企业提供如下服务,这服务内部实现可能很复杂,可是因为是给企业提供的必须粒度粗,不可能要求企业去调用你各个microservice去组合吧。而microservice适合企业内部服务使用,内部进行解耦 ,团队协做等,方便复用和维护。 在实际的架构设计中SOA和microservice没有必要割裂开,好比在给企业提供服务时就能够采用SOA,可是其内部却能够用microservice,经过microservice的组合来提供相似SOA的架构, 在其中一个服务中把各个服务组合起来提供统一的出口服务,达到屏蔽内部实现,又方便外部企业使用的目的。不论是SOA仍是microservice都只是解决方案,具体使用场景要按照实际状况来。没有任何架构是通用的。

相关文章
相关标签/搜索