SOA和微服务有什么区别

//to do

微服务是细粒度的SOA组件。换句话说,某单个SOA组件可以被拆分成多个微服务。

微服务与SOA之间的另一个不同之处是服务互联和编写服务时所使用的技术。J2EE是一个遵循企业级标准的用于编写SOA架构的技术栈。java命名与目录接口(JNDI)、企业级Javabean(EJB)以及企业服务总线(ESB)都是SOA应用赖以构建和维护的生态土壤。

https://zhuanlan.zhihu.com/p/149426131

领域模型不同

  • 在基于微服务的软件中,每个微服务应该在本地存储自身管理的数据,并在领域模型分别隔离到单个服务中(服务即应用)。
  • 而在SOA的软件中,数据往往存储在单个大型的数据库中,服务之间会共享领域模型。

架构划分不同

1、SOA强调按水平架构划分为:前、后端、数据库、测试等。

2、微服务强调按垂直架构划分,按业务能力划分,每个服务完成一种特定的功能,服务即产品。

技术平台选择不同

SOA应用倾向于使用统一的技术平台来解决所有问题。

微服务可以针对不同业务特征选择不同技术平台,去中心统一化,发挥各种技术平台的特长。所以推荐使用HTTP协议。

系统间边界处理机制不同

1、SOA架构强调的是异构系统之间的通信和解耦合;(一种粗粒度、松耦合的服务架构)。

2、微服务架构强调的是系统按业务边界做细粒度的拆分和部署。