Restful

是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是Restful架构或服务。

主要的设计原则:

  •  资源与URI
  •  统一资源接口(HTTP方法如GET,PUT和POST)
  •  资源的表述
  •  资源的链接
  •  状态的转移

总之,RESTful的核心就是后端将资源发布为URI,前端通过URI访问资源

RPC

从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。
Dubbo和Spring Cloud都是RPC框架

SOA

Service-Oriented Architecture,面向服务的架构
SOA提倡将不同应用程序的业务功能封装成“服务”并宿主起来,通常以接口和契约的形式暴露并提供给外界应用访问(通过交换消息),达到不同系统可重用的目的。
SOA是一个组件模型,它能将不同的服务通过定义良好的接口和契约联系起来。

微服务和SOA的区别

微服务是SOA架构演进的结果。两者说到底都是对外提供接口的一种架构设计方式,随着互联网的发展,复杂的平台、业务的出现,导致SOA架构向更细粒度、更通过化程度发展,就成了所谓的微服务了。
  1.  微服务相比于SOA更加精细,微服务更多的以独立的进程的方式存在,互相之间并无影响;
  2.  微服务提供的接口方式更加通用化,例如HTTP RESTful方式,各种终端都可以调用,无关语言、平台限制;
  3.  微服务更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合。