资源说明:Restful、SOAP、RPC、SOA、微服务之间的知识点摘要
一、Restful
* 定义:Restful 是一种架构设计风格,提供了设计原则和约束条件,而不是架构,而满足这些约束条件和原则的应用程序或设计就是 Restful 架构或服务。
* 设计原则:
+ 资源与 URI
+ 统一资源接口(HTTP 方法如 GET、PUT 和 POST)
+ 资源的表述
+ 资源的链接
+ 状态的转移
* 核心思想:后端将资源发布为 URI,前端通过 URI 访问资源,并通过 HTTP 动词表示要对资源进行的操作。
二、SOAP
* 定义:SOAP 是一种数据交换协议规范,是一种轻量的、简单的、基于 XML 的协议的规范。
* 特点:
+ 基于 XML 格式的请求包
+ 可以使用任何语言来完成,只要发送正确的 SOAP 请求即可
+ 基于 SOAP 的服务可以在任何平台无需修改即可正常使用
+ 符合任何路由器、防火墙或代理服务器的要求
三、RPC
* 定义:RPC 就是从一台机器(客户端)上通过参数传递的方式调用另一台机器(服务器)上的一个函数或方法(可以统称为服务)并得到返回的结果。
* 特点:
+ 隐藏底层的通讯细节(不需要直接处理 Socket 通讯或 Http 通讯)
+ 客户端发起请求,服务器返回响应(类似于 Http 的工作方式)
+ 在使用形式上像调用本地函数(或方法)一样去调用远程的函数(或方法)
* RPC 远程调用框架:
+ RMI 实现
+ Hessian
+ Thrift
+ SpringCloud
四、SOA
* 定义:SOA(Service-Oriented Architecture),中文全称:面向服务的架构。
* 特点:
+ 将不同应用程序的业务功能封装成“服务”并宿主起来
+ 通常以接口和契约的形式暴露并提供给外界应用访问(通过交换消息)
+ 达到不同系统可重用的目的
* SOA 是一个组件模型,它能将不同的服务通过定义良好的接口和契约联系起来。
五、微服务
* 定义:微服务是 SOA 架构演进的结果,是一种比较现代化的细粒度的 SOA 实现方式。
* 特点:
+ 相比于 SOA 更加精细,微服务更多的以独立的进程的方式存在,互相之间并无影响
+ 提供的接口方式更加通用化,例如 HTTP RESTful 方式,各种终端都可以调用,无关语言、平台限制
+ 更倾向于分布式去中心化的部署方式,在互联网业务场景下更适合
六、SOA 与微服务的区别
* 微服务相比于 SOA 更加精细
* 微服务提供的接口方式更加通用化
* 微服务更倾向于分布式去中心化的部署方式
七、为什么要使用微服务?
* 技术为业务而生,架构也为业务而出现
* 微服务架构是因为业务的发展而出现
* 微服务可以满足业务的发展和壮大需求
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。