RestFul、SOAP、RPC、SOA、微服务、分布式
Web主流通信方案(RestFul、SOAP)
RestFul(Representational State Transfer)
- 架构风格:RestFul不是协议或规范,而
是一种架构风格
! - 服务抽象:后端的
服务抽象为资源
,资源遍布网络,即:抽象服务为资源。 - 资源锁定:分布在各处的资源由URI确定,而客户端的应用
通过URI来获取资源的表征
。 - 动作抽象:针对后端的服务请求总能
抽象为Get、Post、Put、Delete
,好比数据库中的增删改查。 - 特点是:
高效、易用
。
SOAP(Simple Object Access Protocol)
- XML-RPC:远程过程调用分布式计算协议,通过XML将调用函数封装,并使用HTTP进行传送。后来不断扩展新功能,标准慢慢演变成今日的SOAP协定。
- SOAP,一种标准化的通讯规范,主要用于web服务,被发送到站点的消息的参数中会标明访问意图,站点会根据访问意图返回一个XML格式的信息。(一种规范的通讯语言)
- 特点是:
复杂、成熟、安全
。
RPC(Remote Procedure Call)
- 远程过程调用。
SOA(Service Oriented Architecture)
- 面向服务的架构。
RPC和SOAP都是SOA的具体实现
- SOAP是基于
HTTP和XML
的实现,因此会更容易做业务隔离
,在系统可维护性
和可扩展性
上优于RPC。(通用) - RPC是基于
TCP
或自定义协议
的实现,性能
会略好
于SOAP,但是异构系统间的耦合度
会更高
,间接增加系统的故障率和排错难度。(效能)
微服务
- 是架构设计方式。
一个服务微小到只做一件事
。一个服务微小到由某个小团队独立开发。重点在于解耦
,服务模块化、精细化,分散能力
。粒度更细,迭代程度和并行程度更高。同时意味着维护和管理更复杂。通常微服务是分布式的,反之不然。
分布式
- 是系统部署方式。
多台机器(集群)负责某个工作
,不会因为个别机器宕机而停止该服务。重点在资源共享,提升计算速度。分散压力。 - 分布式调度(集群对集群、软负载)
Reference
- https://wenku.baidu.com/view/5a8fc2cb77eeaeaad1f34693daef5ef7ba0d12db.html(三种主流的WebService实现方案)
A Word
- A crisis is always also an opportunity.
危机之中亦有转机。