文章目录
  1. 1. SOA:
  2. 2. 微服务:
    1. 2.1. 两者特点如下

公司做企业级服务架构,而微服务是现今互联网很火的一个架构模式。两者既有相似的地方又有不同的特点,根据自己理解写一个对两者的看法。

SOA:

面向服务架构,java级企业开发的首选。J2EE在统一开发中有着很好的使用,但是随着模块功能的不断扩展或者变动,对于其中一点的维护可能会影响到整体的项目。
所以有了微服务,彻底的将耦合性再次的降低了。为什么要讲我实习呢,因为微服务的使用会随着单一进程的传统应用被拆分为一系列的多进程服务后,意味着开发、调试、测试、集成、监控和发布的复杂度都会相应增大。 必须要有合适的自动化基础设施来支持微服务架构模式,否则开发、运维成本将大大增加。所以自动化运维是十分必要的。

微服务:

采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,例如 RPC、HTTP 等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服务甚至可以采用不同的编程语言来实现,由独立的团队来维护。简单的来说,一个系统的不同模块转变成不同的服务!而且服务可以使用不同的技术加以实现!

两者特点如下

SOA实现 微服务实现
企业级,自顶向下实现 团队级,自低向上开展实施
服务由多个子系统组成 一个系统被拆分为多个服务,粒度细
企业服务总线,集中式的服务架构 无集中式架构,松散的服务架构
集成方式复杂(ESB/WS/SOAP) 集成方式简单(HTTP/REST/JSON)
单块架构系统,相互依赖,部署复杂 服务都能独立部署

两者特点可以看出,对于应用本身暴露出来的服务,是和应用一起部署的,即服务本身并不单独部署,服务本身就是业务组件已有的接口能力发布和暴露出来的
其次,微服务架构本身来源于互联网的思路,因此组件对外发布的服务强调了采用HTTP Rest API的方式来进行
微服务的基本思想在于考虑围绕着业务领域组件来创建应用,这些就应用可独立地进行开发、管理和加速。在分散的组件中使用微服务云架构和平台使部署、管理和服务功能交付变得更加简单。

若如果一句话来谈SOA和微服务的区别,即微服务不再强调传统SOA架构里面比较重的ESB企业服务总线,同时SOA的思想进入到单个业务系统内部实现真正的组件化

文章目录
  1. 1. SOA:
  2. 2. 微服务:
    1. 2.1. 两者特点如下